Aliyense amene akudziwa zambiri pulogalamu yamapulogalamu amaweruza mapulogalamu olembedwa ndi ena, pogwiritsa ntchito ziweruzo potengera ntchito yawo.
Pa nthawi yonse yomwe ndimagwira ntchito yaukadaulo, ndadziwa akatswiri ambiri, ndipo ndaona mizere yambirimbiri ndipo ndikafunika kuyesa luso la wopanga zinthu ndimangoyang'ana zinthu ziwiri:
Mwamwayi, pali zina zoyambira kapena mfundo zomwe zimapangitsa kuti zikhale zosavuta kuzilemba.
mawu akuti SOLID amayimira:
S: mfundo yokhala ndiudindo umodzi
O: mfundo yotseguka
L: Liskov m'malo mfundo
I: Mfundo yosiyanitsa mawonekedwe
D: Mfundo Yosinthira Kutengera
Tiyeni tiyambe ndikupenda mfundo yoyamba YOLIMBIKIRA, yomwe ndi
Kalasi (kapena gawo) liyenera kukhala ndi chifukwa chimodzi chokha chosinthira, kusintha.
Lingaliro lokha ndilosavuta, koma kuti akwaniritse kuphweka kumeneku njira yakukhazikitsa ikhoza kukhala yovuta kwambiri. Gulu liyenera kukhala ndi chifukwa chimodzi chokha chosinthira.
Koma chifukwa chiyani?
Chifukwa chiyani kuli kofunika kukhala ndi chifukwa chimodzi chokha chosinthira?
Mwachitsanzo, ngati pali zifukwa ziwiri zosinthira, ndizotheka kuti magulu awiri osiyana atha kugwira ntchito yofanana pazifukwa ziwiri zosiyana. Aliyense akuyenera kukhazikitsa yankho lake, lomwe likakhala kuti chilankhulo (monga C ++, C # kapena Java), chitha kubweretsa ma module omwe sakugwirizana ndi magulu ena kapena magawo ena a pulogalamuyi.
Chitsanzo china, ngati mukugwiritsa ntchito chilankhulo, mutha kuyesanso kalasi limodzi kapena gawo lomwelo pazifukwa zosiyanasiyana. Izi zikutanthauza ntchito yambiri, nthawi ndi khama pakuwongolera zabwino.
Kuzindikira gawo limodzi lomwe kalasi kapena gawo liyenera kukhala ndizovuta kwambiri kuposa kungoyang'ana mndandanda kuti muyese mayeso.
Koma tiyeni tiyesere kulingalira kuchokera pamalingaliro ocheperako, ndiye kuti, tiyeni tiyesere kusanthula wogwiritsa ntchito kalasi yathu kapena gawo lathu, ndiye amene adzagwiritse ntchito. Chofunikira kwambiri chomwe tiyenera kukumbukira nthawi zonse, ndichakuti ogwiritsa ntchito kapena makina omwe timapanga omwe amatumizidwa ndi gawo linalake ndi omwe adzapemphe zosintha. Omwe atumizidwa adzafunsa kuti asinthe kalasi kapena module.
Zitsanzo zina za ma module ndi momwe amagwiritsira ntchito:
Chifukwa chake ngati gawo loyamba ndikufufuza ochita zisudzo kapena wochita seweroli yemwe ali ndi gawo lokambirana ndi gawoli, kuphatikizira anthu omwe ali ndi maudindo onse kumakhala kovuta. Pakampani yaying'ono, munthu m'modzi amatha kuchita maudindo angapo pakampani yayikulu pakhoza kukhala anthu angapo omwe ali ndi gawo limodzi.
Zikuwoneka zomveka kuzindikira maudindo, osati anthu kapena ogwiritsa ntchito.
Chifukwa chake:
Tiyeni tiwone viyerezgero vinyake
Tiyerekeze kuti tili ndi Kalasi ya Buku yomwe imaphatikiza lingaliro la buku ndi magwiridwe ake.
kalasi Book {
ntchito GetTitle () {
bwererani "Bukhu Lalikulu";
}
gwiritsani ntchito GetAuthor () {
bwererani "Alessandro Baricco";
}
gwiritsani tsamba lotsatira () {
// tsamba lotsatira
}
gwiritsani ntchito printCurrentPage () {
lembani "zomwe zili patsamba lino";
}
}
Ili ndi gulu labwinobwino. Tili ndi buku, ndipo ophunzirawo atha kutipatsa mutuwo, atha kutipatsa wolemba, ndipo amatha kupitiliza. Pomaliza, imathanso kusindikiza tsamba lomwe lilipoli pazenera.
Komabe, pali vuto laling'ono.
Kuganizira za omwe akuchita nawo kasamalidwe ka Book, angakhale ndani?
Titha kuganiza mosavuta za osewera awiri apa: Kuwongolera Mabuku (monga owerenga mabuku) ndi Makina operekera deta (monga momwe tikufuna kuperekera zinthu kwa wogwiritsa ntchito: pazenera, mawonekedwe owonetsera, mawonekedwe owerenga okha, mwina kusindikiza).
Tili ndi ochita sewero awiri osiyana omwe amalumikizana ndi gulu.
Mwachidule gulu ili limapanga kuphatikiza pakati:
ili likhoza kukhala vuto chifukwa limaphwanya mfundo imodzi yokhazikika (SRP).
Kodi tingasinthe bwanji, tingawongolere bwanji malamulowa kuti tilemekeze mfundo yoti aliyense akhale ndi udindo?
Onani nambala yotsatirayi:
kalasi Book {
ntchito GetTitle () {
bwererani "Oceano Mare";
}
gwiritsani ntchito GetAuthor () {
bwererani "Alessandro Baricco";
}
tsamba lotembenuzira ntchito () {
// tsamba lotsatira
}
gwiritsani ntchito GetCurrentPage () {
lembani "zomwe zili patsamba lino";
}
}
mawonekedwe Printer {
ntchito printPage ($ tsamba);
}
Class StampaLibro imagwiritsa ntchito Printer {
gwiritsani ntchito masamba osindikiza ($ tsamba) {
pezani tsamba la $;
}
}
HtmlPrinter imagwiritsa ntchito Printer {
gwiritsani ntchito masamba osindikiza ($ tsamba) {
echo ' '. $ tsamba. ' ';
}
}
Chitsanzo chophwekachi chikuwonetsa momwe tingalekanitsire zowonetserako ndi malingaliro abizinesi, ndipo kutsatira SRP kumapereka mwayi waukulu pakusintha kwa ntchito yathu.
Tiyeni tione chitsanzo china:
Chitsanzo chofanana ndi chomwe chili pamwambapa ndi pamene chinthu chimatha kudzipulumutsa ndikudziwonetsera pachokha.
kalasi Book {
ntchito GetTitle () {
bwererani "Oceano Mare";
}
gwiritsani ntchito GetAuthor () {
bwererani "Alessandro Baricco";
}
tsamba lotembenuzira ntchito () {
// tsamba lotsatira
}
gwiritsani ntchito GetCurrentPage () {
bweretsani "zomwe zili patsamba lino";
}
ntchito sungani () {
$ filename = '/ zolemba /'. $ izi-> getTitolo (). '-'. ' $ izi-> getAuthor ();
file_put_contents ($ filename, serialize ($ iyi));
}
}
Monga kale, panonso titha kuzindikira osewera osiyanasiyana ngati Kuwongolera Mabuku (monga owerenga mabuku) ndi Khama. Nthawi zonse tikamafuna kusintha momwe timayendera kuchokera patsamba kupita kutsamba, tifunika kusintha kalasi iyi. Titha kukhala ndi zifukwa zingapo zosinthira.
kalasi Book {
ntchito GetTitle () {
bwererani "Oceano Mare";
}
gwiritsani ntchito GetAuthor () {
bwererani "Alessandro Baricco";
}
tsamba lotembenuzira ntchito () {
// tsamba lotsatira
}
gwiritsani ntchito GetCurrentPage () {
bweretsani "zomwe zili patsamba lino";
}
}
kalasi SimpleFilePersistence {
ntchito sungani (Buku $ book) {
$ filename = '/ zolemba /'. $ buku-> getTitle (). '-'. ' $ buku-> getAuthor ();
fayilo_put_contents ($ filename, serialize ($ book));
}
}
Kusunthira ntchito yolimbikira kupita mgulu lina kudzasiyanitsa bwino maudindo ndipo tidzakhala omasuka kusinthanitsa njira zolimbikira popanda kukhudza gulu lathu la Buku. Mwachitsanzo, kugwiritsa ntchito DatabasePersistence kalasi sikungakhale kopepuka, ndipo malingaliro athu amabizinesi omangidwa mozungulira ntchito zamabuku sangasinthe.
Pitirizani powerenga mfundo yachiwiri Open / Closed ->
Ercole Palmeri
Coveware yolembedwa ndi Veeam ipitilizabe kuyankha pazochitika za cyber extortion. Coveware ipereka luso lazamalamulo ndi kukonzanso…
Kukonza zolosera kukusintha gawo lamafuta & gasi, ndi njira yaukadaulo komanso yolimbikira pakuwongolera mbewu.…
Bungwe la UK CMA lapereka chenjezo lokhudza machitidwe a Big Tech pamsika wanzeru zopangira. Apo…
Lamulo la "Case Green", lopangidwa ndi European Union kuti lipititse patsogolo mphamvu zomanga nyumba, lamaliza ntchito yake yokhazikitsa malamulo ndi…