Tefito

Tuwhera / Kati, kia rite ki te kaupapa a SOLID

Ko nga hinonga raupaparorohiko (akomanga, waahanga, mahi, me etahi atu) me tuwhera mo te whakaroanga, engari me kati kia whakatikatika

Te hoahoa i te raupaparorohiko: nga waahanga, nga karaehe me nga mahi kia pai ai te mahi hou, kaua e whakarereketia te waehere o mua engari me tuhi he waehere hou ka whakamahia e te waehere o mua He rereke pea te ahua o tenei, ina koa ko nga reo penei i te Java, C, C ++ ko C # ranei e pa ana ki te waehere punawai ano engari ki te taarua hoki. Kei te pirangi taatau ki te hanga waahanga hou me nga waahanga kaore e hiahiatia te tohatoha o nga raaruarua o mua, nga kaiwhakahaere, DLL ranei.
OCP i te horopaki SOLID

 

SRP Taapiri me te OCP

Kua kite ke taatau i te maataapono a te SRP mo te Kawenga Kotahi e kii ana kia kotahi noa te take o te kaupapa hei whakarereke. Ko nga kaupapa o te OCP me te SRP he mea tautoko. Ko te waehere kua hangaia i muri i te kaupapa SRP ka whakaute ano hoki ki nga kaupapa OCP. Mena he tohu taatau he kotahi noa iho nga take hei whakarereke, ko te whakauru i tetahi waahanga hou ka puta he take tuarua mo tera huringa. Na ko te SRP me te OCP ka takahia. Waihoki, mena he tohu taatau ka huri noa ka rereke ana mahi matua me te kore e rereke i te wa e taapirihia ana nga mahi hou, me te whakaaro ki te OCP, ka aro ano te nuinga ki a SRP.
Ehara tenei i te kii ko te SRP ka ahu tonu ki te OCP, ki te tua atu ranei, engari i te nuinga o te waa mena ka tutaki tetahi o raatau, he maamaa te eke ki te tuarua.

 

He tauira mo te takahi i te kaupapa OCP

Mai i te tirohanga hangarau noa, he maama noa te Kaupapa Tuwhera / Katia. Ko te hononga maamaa i waenga i nga akomanga e rua, penei i te mea i raro ake nei, ka takahi i te kaupapa OCP.

Ka whakamahi tika te akomanga Kaiwhakamahi i te karaehe Whakauru. Mena ka hiahia maatau ki te whakamahi i tetahi karaehe Whakauru tuarua kia ahei ai tatou ki te whakamahi i te waa o naianei me te mea hou, me whakarereke te karaehe Whakauru. Ko te kaiwhakamahi he here tika ki te whakatinanatanga o te arorau, kaore he huarahi mo taatau ki te tohatoha arorau hou me te kore e awe i tenei. Ana ka korero maatau mo nga reo patopato, ka taea ano hoki e te akomanga Kaiwhakamahi te whakarereke. Mena ka korero maatau mo nga reo whakahiato, he pono ka taea e te Kaiwhakamahi te whakamahi me te Korero arorau ko te whare pukapuka kaha ranei te whakakotahi me te tuku, he pai ke ki te karo ina taea.

Ma te korero ki te kaupapa o mua, ka mohio taatau ko nga akomanga e whakamahi tika ana i tetahi atu akomanga, ka takahi pea ki te takahi i te kaupapa tuwhera / Katia. 
Whakaarohia e hiahia ana taatau ki te tuhi i tetahi akomanga e ahei ana ki te whakarato i te ahunga whakamua "i roto i te orauau" o te konae ka tangohia, ma ta maatau tono E rua nga akomanga matua o taatau, ko te Ahunga whakamua me te konae, a ki taku whakaaro ka hiahia taatau ki te whakamahi i enei e whai ake nei:

 

mahi whakamātautauItCanGetTheProgressOfAFileAsAPercent () {
     $ file = Kōnae hou ();
     $ file-> roa = 200;
     $ file-> tukuna = 100;
     $ ahunga whakamua = ahunga whakamua hou ($ file);
     $ tenei-> assertEquals (50, $ ahunga whakamua-> getAsPercent ());
}

I roto i tenei waehere he kaiwhakamahi ahunga whakamua matou. E hiahia ana matou kia whai uara hei ōrau, ahakoa te rahinga o te konae. Ka whakamahia e matou te konae hei puna korero. He roa te pauna o tetahi konae me tetahi mara e kiia ana kua tukuna hei tohu mo te nui o nga raraunga i tukuna ki te kai tango. Kaore maatau e aro pehea te whakahou i enei uara ki te tono. Ka taea e taatau te kii kei kona tetahi whakaaro arorau autaia e mahi ana ma tatou, na hei whakamatautau ka taea e taatau te whakarite.

 

Kōnae akomanga {
     iwi whanui $ roa;
     tūmatanui $ tukuna;
}

 

Ko te akomanga Kōnae he mea raraunga noa noa iho nei e rua nga mara. Ae ra me uru ano etahi atu korero me nga whanonga, penei i te ingoa ingoa, te ara, te huarahi whanaunga, te whaiaronga o naianei, te momo, nga whakaaetanga, aha atu.

 

akomanga whakamua {

     he konae $ muna;

     mahi __construct (Kōnae $ konae) {
          $ tenei-> konae = $ konae;
     }

     mahi getAsPercent () {
          whakahoki $ tenei-> konae-> tukuna * 100 / $ tenei-> konae-> roa;
     }

}

Ko te ahunga whakamua he akomanga noa e whakaae ana ki tetahi konae ki tana kaihanga. Mo te maarama, kua tohua e maatau te momo taurangi i roto i nga waahanga hanga. He kotahi te tikanga whaihua mo te ahunga whakamua, getAsPercent (), ka tangohia nga uara kua tukuna mai me te roa mai i te konae ka huri hei ōrau. Maamaa ka mahi.

Te ahua nei he tika tenei tohu, engari ka takahi i te kaupapa tuwhera / Katia.

Engari he aha?

A me pehea?

 

Me ngana ki te whakarereke i nga whakaritenga

Ia tono ki te whanake haere i roto i te waa ka hiahia ki nga ahuatanga hou. Ko tetahi ahuatanga hou mo ta maatau tono ko te whakaae kia rere te puoro engari kaua ko te tango i nga konae. Ko te roa o te konae e whakaatu ana i nga paita, te roanga o te puoro i roto i etahi hēkona. Kei te hiahia matou ki te toha i tetahi pae whakamua ki te hunga whakarongo, engari ka taea e taatau te whakamahi ano i te akomanga i tuhia i runga ake nei?

Kao kaore e taea e matou. Ko ta maatau anga whakamua ka herea ki te konae. Ka taea noa te whakahaere i nga korero konae, ahakoa ka taea te whakamahi ki nga tuhinga puoro. Engari ki te mahi i tena me whakarereke taua mea, me mohio tatou ki te Ahunga whakamua ki nga puoro me nga konae. Mena kua ea ta maatau hoahoa ki te OCP, kaore e hiahiatia te pa ki te konae, ki te Ahunga whakamua ranei. Ka taea noa te whakamahi i te ahunga whakamua o mua me te whakamahi ki nga puoro.

 

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

He otinga ka taea

Ko nga reo e patohia ana he pai ki te whakahaere momo ahanoa i te waa e whakahaerehia ana. Ma tenei ka ahei tatou ki te tango i te taipii mai i te kaihanga haeretanga ka haere tonu te waehere.

akomanga whakamua {

     he konae $ muna;

     mahi __construct ($ file) {
         $ tenei-> konae = $ konae;
     }

    mahi getAsPercent () {
         whakahoki $ tenei-> konae-> tukuna * 100 / $ tenei-> konae-> roa;
     }

}

Ka taea e taatau te whakarewa i tetahi mea i te kauneketanga. Na tetahi mea, ko taku tino tikanga tetahi:

akomanga Waiata {

iwi whanui $ roa;
tūmatanui $ tukuna;

tūmatanui $ artist;
pukaemi $ hapori;
iwi whanui $ tukuTohu;

mahi getAlbumCoverFile () {
whakahoki 'Whakaahua / Uhi /'. $ tenei-> kaitoi. '/'. $ tenei-> pukaemi. '.png';
}
}

Ana ko te akomanga Waiata penei i runga ake nei ka tino mahi. Ka taea e taatau te whakamatautau ma te whakamatautau tino rite ki te konae.
mahi whakamātautauItCanGetTheProgressOfAMusicStreamAsAPercent () {
$ puoro = Waiata hou ();
$ puoro-> roa = 200;
$ waiata-> tukuna = 100;

$ ahunga whakamua = ahunga whakamua hou ($ puoro);

$ tenei-> assertEquals (50, $ ahunga whakamua-> getAsPercent ());
}

Na ko te tikanga ka taea te whakamahi i tetahi ihirangi me te karaehe kauneketanga. Akene me waiho e tatou ki roto i te waehere ma te huri i te ingoa taurangi hoki:

akomanga whakamua {

tūmataiti $ mehuaWhakaari;

mahi __construct ($ me te urungaContent) {
$ tenei-> mehuaWhakaakona = $ me te meariWhakaakona;
}

mahi getAsPercent () {
whakahoki mai $ tenei-> mehuaWhakaakona-> tukuna * 100 / $ tenei-> mehuaMomo-- roa;
}

}

I te wa i tohua ai e maatau te konae ko te ahua o te ahua, he maatua ngakau matou mo nga mea ka taea e ta maatau akomanga te whakahaere. He maamaa noa mena ka tae mai etahi atu mea, he he nui te kii mai.

Una akomanga e takahi ana i te tikanga o te akomanga turanga kia kore ai e whakahonoretia te kirimana akomanga turanga e te akomanga i ahu mai. 

Kaore matou e hiahia ki te whakamutu ki te waea ki nga tikanga, ki te uru atu ranei ki nga mara e kore e hangai ki ta maatau kirimana. I a maatau he taipiri, na te kirimana i whakaatu. Nga mara me nga tikanga o te akomanga Kōnae. Na, i te mea kaore o taatau, ka taea e taatau te tuku atu, ahakoa he aho, ka he pea he.

Ahakoa he rite tonu te hua o te mutunga i roto i nga keehi e rua, ko te tikanga ka pakaru te waehere, ka puta he panui pai te korero o mua. Heoi, he tino pouri tenei. Karekau he huarahi ki te mohio he aha te taurangi – he aho i roto i ta maatau keehi – he aha nga taonga i rapua kaore i kitea. He uaua ki te patuiro me te whakatika i te raru. Me whakatuwhera e te kaitoha te akomanga Progress, panui me te maarama. Ko te kirimana, i tenei keehi, ki te kore koe e whakaatu i te tohu tohu, he defikua oti i te whanonga o te ahunga whakamua. He kirimana whakapae e mohiotia ana e te Progress anake. I roto i to tatou tauira, ko te defika oti ma te uru ki nga mara e rua, ka tukuna me te roa, i roto i te tikanga getAsPercent(). I roto i te ora tonu ka tino uaua, he uaua ki te kimi i te kirimana kua tohua ma te rapu noa mo etahi hēkona i roto i te karaehe.

Ko tenei otinga ka taunakitia mena kaore e taea te whakamahi i tetahi atu o nga tohutohu i raro ake nei mena ka whiu ranei i etahi whakarereketanga hoahoanga kaore e tutuki.

Ercole Palmeri

Panui houtanga
Kaua e ngaro nga korero tino nui mo te mahi auaha. Waitohu ki te whiwhi i a raatau ma te imeera.

Nga tuhinga o mua

Nga Hua o nga Wharangi Tae mo nga Tamariki - he ao makutu mo nga reanga katoa

Ko te whakawhanake i nga pukenga motuka pai na roto i te tae ka whakarite i nga tamariki mo nga pukenga uaua ake penei i te tuhi. Ki te tae…

2 May 2024

Kei konei te heke mai: Me pehea te Ahumahi kaipuke e huri ana i te ohanga o te ao

Ko te waahanga moana he mana ohaoha pono o te ao, kua whakatere ki te maakete 150 piriona ...

1 May 2024

Ka haina nga Kaiwhakaputa me te OpenAI i nga whakaaetanga hei whakahaere i te rere o nga korero i tukatukahia e Artificial Intelligence

I te Mane kua hipa, i panuitia e te Financial Times tetahi mahi me OpenAI. Ka raihana a FT i tana kairipoata o te ao…

30 Paenga-whāwhā 2024

Utu Ipurangi: Anei te pehea o nga Ratonga Rere e Utu ana koe mo ake tonu atu

E hia miriona nga taangata e utu ana mo nga ratonga rerema, e utu ana i nga utu ohaurunga ia marama. Ko te whakaaro noa ko koe…

29 Paenga-whāwhā 2024