10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Gu math tric bidh mi a’ coinneachadh ri luchd-leasachaidh nach cuala mu phrionnsapalan SOLID (sinn bruidhinn riutha gu mionaideach an seo. - Transl.) no prògramadh a tha ag amas air nithean (OOP), no air cluinntinn mun deidhinn, ach na cleachd iad ann an cleachdadh. Tha an artaigil seo a’ toirt cunntas air na buannachdan bho phrionnsapalan OOP a chuidicheas an leasaiche na obair làitheil. Tha cuid dhiubh ainmeil, cuid eile nach eil cho mòr, agus mar sin bidh an artaigil feumail airson luchd-tòiseachaidh agus luchd-prògramaidh eòlach.

Tha sinn a ’cur nar cuimhne: airson a h-uile leughadair Habr - lasachadh de 10 rubles nuair a chlàras tu air cùrsa Skillbox sam bith a’ cleachdadh còd brosnachaidh Habr.

Tha Skillbox a’ moladh: Cùrsa foghlaim air-loidhne "Leasaiche Java".

DRY (Na dèan ath-aithris ort fhèin)

Prionnsabal gu math sìmplidh, agus tha brìgh soilleir bhon ainm: "Na dèan ath-aithris ort fhèin." Airson prògramadair, tha seo a 'ciallachadh gum feumar còd dùblaichte a sheachnadh, a bharrachd air a' chothrom a bhith a 'cleachdadh tarraing às san obair aca.

Ma tha dà earrann ath-aithris sa chòd, bu chòir an cur còmhla ann an aon dòigh. Ma thèid luach còd cruaidh a chleachdadh barrachd air aon uair, is fhiach a thionndadh gu seasmhach poblach.

Tha seo riatanach gus an còd a dhèanamh nas sìmplidhe agus a dhèanamh nas fhasa a chumail suas, a tha na phrìomh amas aig OOP. Cha bu chòir dhut cus feum a dhèanamh den aonadh nas motha, oir cha toir an aon chòd seachad dearbhadh leis an dà chuid OrderId agus an SSN.

A’ gabhail a-steach Atharrachaidhean

Tha bathar bathar-bog a’ mhòr-chuid de chompanaidhean a’ sìor atharrachadh. Tha seo a 'ciallachadh gum feumar atharrachaidhean a dhèanamh air a' chòd, feumaidh e taic a thoirt dha. Faodaidh tu do bheatha a dhèanamh nas fhasa le bhith a’ cleachdadh encapsulation. Leigidh seo leat do bhunait còd a th’ ann mu thràth a dhearbhadh agus a chumail nas èifeachdaiche. Seo aon eisimpleir.

Ma sgrìobhas tu ann an Java, an uairsin sònraich dòighean prìobhaideach agus caochladairean gu bunaiteach.

Prionnsabal fosgailte / dùinte

Faodar am prionnsapal seo a chuimhneachadh gu furasta le bhith a’ leughadh an aithris a leanas: “Bu chòir buidhnean bathar-bog (clasaichean, modalan, gnìomhan, msaa) a bhith fosgailte airson leudachadh, ach dùinte airson atharrachadh.” Ann an cleachdadh, tha seo a 'ciallachadh gun urrainn dhaibh leigeil leotha an giùlan atharrachadh gun a bhith ag atharrachadh a' chòd stòr.

Tha am prionnsapal cudromach nuair a dh’ fheumas atharrachaidhean air a’ chòd stòr ath-sgrùdadh a’ chòd, deuchainn aonad, agus modhan-obrach eile. Chan atharraich còd a tha a’ leantainn a’ phrionnsabail fhosgailte/dùinte nuair a thèid a leudachadh, agus mar sin tha fada nas lugha de dhuilgheadasan ann leis.

Seo eisimpleir de chòd a bhriseas a’ phrionnsapal seo.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Ma dh'fheumas tu rudeigin atharrachadh ann, bheir e tòrr ùine, oir feumar a h-uile earrann den chòd aig a bheil ceangal ris a 'chriomag a tha thu ag iarraidh atharrachadh.

Air an t-slighe, is e fosgarrachd aon de na prionnsapalan aig SOLID.

Prionnsabal Uallach Singilte (SRP)

Prionnsabal eile bhon t-seata SOLID. Tha e ag ràdh “chan eil ann ach aon adhbhar a dh’ adhbhraicheas atharrachadh sa chlas.” Chan eil an clas a’ fuasgladh ach aon duilgheadas. Is dòcha gu bheil grunn dhòighean ann, ach tha gach fear dhiubh air a chleachdadh a-mhàin gus fuasgladh fhaighinn air duilgheadas cumanta. Bu chòir a h-uile modh agus seilbh a bhith a 'frithealadh seo a-mhàin.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Is e luach a’ phrionnsapail seo gu bheil e a’ fuasgladh a’ cheangail eadar am pàirt bathar-bog fa leth agus an còd. Ma chuireas tu barrachd air aon gnìomh ri clas, bheir e a-steach dàimh eadar an dà ghnìomh. Mar sin, ma dh'atharraicheas tu aon dhiubh, tha deagh chothrom ann gun tèid an dàrna fear a mhilleadh, a tha ceangailte ris a 'chiad fhear. Agus tha seo a’ ciallachadh a bhith ag àrdachadh chuairtean deuchainn gus a h-uile duilgheadas aithneachadh ro-làimh.

Prionnsabal tionndaidh eisimeileachd (DIP)

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Gu h-àrd tha eisimpleir còd far a bheil AppManager an urra ri EventLogWriter, a tha e fhèin ceangailte gu dlùth ri AppManager. Ma tha feum agad air dòigh eadar-dhealaichte airson fios a nochdadh, biodh e putadh, SMS no post-d, feumaidh tu an clas AppManager atharrachadh.

Faodar an duilgheadas fhuasgladh le bhith a’ cleachdadh DIP. Mar sin, an àite AppManager, bidh sinn ag iarraidh EventLogWriter, a thèid a chuir a-steach leis an fhrèam.

Tha DIP ga dhèanamh comasach modalan fa leth a chuir an àite feadhainn eile gu furasta le bhith ag atharrachadh a’ mhodal eisimeileachd. Tha seo ga dhèanamh comasach aon mhodal atharrachadh gun a bhith a’ toirt buaidh air an fheadhainn eile.

Cumadh an àite oighreachd

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaicheTha dà phrìomh dhòigh air còd ath-chleachdadh: dìleab agus sgrìobhadh, agus tha na buannachdan agus na h-eas-bhuannachdan aca fhèin aig gach fear. Mar as trice is fheàrr an dàrna fear oir tha e nas sùbailte.

Bheir sgrìobhadh comas dhut giùlan clas atharrachadh aig àm ruith le bhith a’ suidheachadh a fheartan. Nuair a thathar a ‘cur an gnìomh eadar-aghaidh, thathas a’ cleachdadh polymorphism, a bheir buileachadh nas sùbailte.

Tha eadhon Java Èifeachdach le Joshua Bloch a’ comhairleachadh a bhith a’ taghadh sgrìobhadh thairis air oighreachd.

Prionnsabal Ionadail Barbara Liskov (LSP)

Prionnsabal eile bhon ghoireas SOLID. Tha e ag ràdh gum feum subtypes a bhith an àite an supertype. Is e sin, bu chòir dòighean agus gnìomhan a tha ag obair le sàr-chlas a bhith comasach air obrachadh gun duilgheadasan leis na fo-chlasaichean aige.

Tha LSP co-cheangailte an dà chuid ris a’ phrionnsapal aon-uallach agus am prionnsapal uallach co-roinnte. Ma bheir clas barrachd comas-gnìomh na fo-chlas, cha toir an dàrna fear taic do chuid den ghnìomhachd, a’ dol an aghaidh a’ phrionnsapail seo.

Seo pìos còd a tha an aghaidh LSP.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Tha am modh sgìre (Ceart-cheàrnach r) a’ tomhas farsaingeachd ceart-cheàrnach. Tuitidh am prògram às deidh dha Ceàrnag a chuir gu bàs leis nach e ceart-cheàrnach a th’ ann an Ceàrnag an seo. A rèir prionnsapal LSP, bu chòir gum biodh comas aig gnìomhan a bhios a’ cleachdadh iomraidhean air clasaichean bunaiteach stuthan de chlasaichean stèidhichte a chleachdadh gun stiùireadh a bharrachd.

Chaidh am prionnsapal seo, a tha na mhìneachadh sònraichte air subtype, a mholadh le Barbara Liskov ann am prìomh òraid co-labhairt ann an 1987 leis an tiotal “Data Abstraction and Rangachd,” mar sin an t-ainm.

Prionnsabal Split Eadar-aghaidh (ISP)

Prionnsabal SOLID eile. A rèir e, cha bu chòir eadar-aghaidh nach eil air a chleachdadh a bhith air a chur an gnìomh. Le bhith a’ leantainn a’ phrionnsapail seo bidh an siostam a’ cuideachadh gus fuireach sùbailte agus freagarrach airson ath-fhactaraidh nuair a thèid atharrachaidhean a dhèanamh air an loidsig obrachaidh.

Mar as trice, bidh an suidheachadh seo a 'tachairt nuair a tha grunn ghnìomhan anns an eadar-aghaidh aig an aon àm, agus chan fheum an neach-dèiligidh ach aon dhiubh.

Leis gur e obair dhoirbh a th’ ann a bhith a’ sgrìobhadh eadar-aghaidh, bidh e na dhùbhlan atharrachadh às deidh an obair a chrìochnachadh gun dad a bhriseadh.

Is e buannachd prionnsapal ISP ann an Java gum feumar a h-uile modh a chuir an gnìomh an toiseach, agus dìreach às deidh sin faodar an cleachdadh le clasaichean. Mar sin, tha am prionnsapal ga dhèanamh comasach an àireamh de dhòighean a lughdachadh.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Prògramadh airson an eadar-aghaidh, chan e buileachadh

Tha a h-uile dad an seo soilleir bhon tiotal. Le bhith a’ cur a’ phrionnsapail seo an sàs bidh sinn a’ cruthachadh còd sùbailte a dh’ obraicheas le buileachadh ùr sam bith air an eadar-aghaidh.

Bu chòir dhut an seòrsa eadar-aghaidh a chleachdadh airson caochladairean, seòrsaichean tilleadh, no an seòrsa argamaid dòigh. Tha eisimpleir a’ cleachdadh SuperClass seach SubClass.

'S e sin:

Liosta àireamhan = getNumbers();

Ach chan eil:

Àireamhan ArrayList = getNumbers();

Seo buileachadh practaigeach de na tha air a dheasbad gu h-àrd.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Prionnsabal tiomnaidh

Is e eisimpleir cumanta na dòighean co-ionann () agus hashCode () ann an Java. Nuair a tha feum air coimeas a dhèanamh eadar dà rud, tha an gnìomh seo air a thiomnadh don chlas fhreagarrach an àite an neach-dèiligidh.

Is e buannachd a 'phrionnsapail nach eil dùblachadh còd ann agus tha e an ìre mhath sìmplidh giùlan atharrachadh. Tha e cuideachd a’ buntainn ri tiomnadh tachartais.

10 Prionnsapalan Prògramadh a tha ag amas air nithean a bu chòir fios a bhith aig gach leasaiche

Tha na prionnsabalan sin uile a 'toirt cothrom dhut còd nas sùbailte, brèagha agus earbsach a sgrìobhadh le co-leanailteachd àrd agus ceangal ìseal. Gu dearbh, tha teòiridh math, ach airson leasaiche a bhith a 'cleachdadh an eòlais a fhuair iad, tha feum air cleachdadh. Aon uair ‘s gu bheil thu air prionnsapalan OOP a mhaighstireachd, is dòcha gur e an ath cheum agad pàtrain dealbhaidh ionnsachadh gus fuasgladh fhaighinn air duilgheadasan leasachadh bathar-bog cumanta.

Tha Skillbox a’ moladh:

Source: www.habr.com

Cuir beachd ann