Articles

E butsoe / e koetsoe, ho latela molao-motheo o SOLID

Lisebelisoa tsa software (lihlopha, li-module, mesebetsi, jj.) Li lokela ho buloa bakeng sa katoloso, empa li koaloe bakeng sa ho li hlophisa

Ho rala software: li-module, litlelase le mesebetsi ka tsela ea hore ha ts'ebetso e ncha e hlokahala, re se ke ra fetola khoutu e seng e le teng empa re ngole khoutu e ncha e tla sebelisoa ke khoutu e seng e ntse e le teng. Sena se ka utloahala se makatsa, haholoholo ka lipuo tse kang Java, C, C ++ kapa C # moo e sa sebetseng khoutu ea mohloli ka boeona feela empa hape e sebetsa le ho binary. Re batla ho theha likarolo tse ncha ka litsela tse sa hlokeng ho ajoa bocha ha li-binaries, li-executable kapa li-DLL.
OCP maemong a SOLID

 

Tlatsetso ea SRP le OCP

Re se re bone molao-motheo oa SRP oa Boikarabello bo le Bang o reng mojule o lokela ho ba le lebaka le le leng feela la ho fetoha. Melao-motheo ea OCP le SRP lia tlatsana. Khoutu e raliloeng ho latela molao-motheo oa SRP le eona e tla hlompha melaoana ea OCP. Ha re na le khoutu e nang le lebaka le le leng feela la ho fetoha, ho hlahisa tšobotsi e ncha ho tla baka lebaka la bobeli la phetoho eo. Kahoo ka bobeli SRP le OCP li ne li tla tloloa. Ka mokhoa o ts'oanang, haeba re na le khoutu e lokelang ho fetoha ha ts'ebetso ea eona ea mantlha e fetoha mme e lokela ho lula e sa fetohe ha ts'ebetso e ncha e eketsoa, ​​ka hona ho hlompha OCP, e tla hlompha le SRP haholo.
Sena ha se bolele hore SRP e lula e lebisa ho OCP kapa ka tsela e fapaneng, empa maemong a mangata haeba e mong oa bona a lateloa, ho fihlela ea bobeli ho bonolo haholo.

 

Mohlala oa tlolo ea molao-motheo oa OCP

Ho latela pono ea tekheniki, Molao-motheo o Bulehileng / o Koetsoeng o bonolo haholo. Kamano e bonolo lipakeng tsa lihlopha tse peli, joalo ka e ka tlase, e tlola molao-motheo oa OCP.

Sehlopha sa mosebelisi se sebelisa sehlopha sa Logic ka kotloloho. Haeba re hloka ho kenya tšebetsong sehlopha sa bobeli sa Logic ka tsela e re lumellang ho sebelisa ea hajoale le e ncha, sehlopha sa Logic se seng se tla hloka ho fetoloa. Mosebelisi o tlameletsoe ka kotloloho ts'ebetsong ea mohopolo, ha ho na mokhoa oa hore re fane ka mohopolo o mocha ntle le ho ama oa hajoale. Mme ha re bua ka lipuo tse ngotsoeng ka lipalo, Sehlopha sa mosebelisi se kanna sa hloka liphetoho le sona. Haeba re bua ka lipuo tse bokelletsoeng, ka sebele mosebedisi o ka sebetswang le Logic e ka sebetswang kapa laeborari e matla e tla hloka puseletso le phetiso, ho khethoa ho qoba ha ho khonahala.

Ha re bua ka leano le fetileng, re ka fihlela qeto ea hore sehlopha sefe kapa sefe se sebelisang sehlopha se seng ka kotloloho, se ka lebisa tlolong ea molao-motheo o Bulehileng / o Koetsoeng. 
Ha re nke hore re batla ho ngola sehlopha se khonang ho fana ka tsoelo-pele "ka liperesente" tsa faele e jarollotsoeng, ka ts'ebeliso ea rona. Re tla ba le lihlopha tse peli tsa mantlha, Tsoelo-pele le Faele, mme ke nahana hore re ka rata ho li sebelisa ka tsela e latelang:

 

teko ea mosebetsiItCanGetTheProgressOfAFileAsAPercent () {
     $ file = File e ncha ();
     $ file-> bolelele = 200;
     $ file-> rometsoe = 100;
     $ progress = Tsoelo-pele e ncha ($ file);
     $ sena-> tiisaEquals (50, $ progress-> getAsPercent ());
}

Khoutu ena re basebelisi ba Tsoelo-pele. Re batla ho fumana boleng ka liperesente, ho sa tsotelehe boholo ba faele. Re sebelisa File e le mohloli oa tlhaiso-leseling. Faele e na le bolelele ba li-byte le sebaka se bitsoang se rometsoeng se emelang palo ea data e rometsoeng ho downloader. Ha re tsotelle hore na litekanyetso tsena li ntlafatsoa joang ts'ebelisong. Re ka nahana hore ho na le mabaka a mang a mohlolo a re etsetsang sena, ka hona ha re le tekong re ka a beha ka ho hlaka.

 

Faele ea sehlopha {
     bolelele ba $ $ ea sechaba;
     $ e rometsoe phatlalatsa;
}

 

Sehlopha sa File ke feela ntho e bonolo ea data e nang le likarolo tse peli. Ehlile e lokela ho ba le tlhaiso-leseling e ngoe le boits'oaro, joalo ka filename, path, path path, directory ea hajoale, mofuta, litumello, joalo-joalo.

 

Tsoelo-pele ea sehlopha {

     lekunutu $ file;

     sebetsa __construct (Faele $ file) {
          $ sena-> file = $ faele;
     }

     sebetsa getAsPercent () {
          khutlisa $ this-> file-> sent * 100 / $ this-> file-> length;
     }

}

Tsoelo-pele ke sehlopha feela se amohelang faele ho seakhi sa eona. Bakeng sa ho hlaka, re boletse mofuta o fapaneng meralong ea moetsi. Ho na le mokhoa o le mong o sebetsang ho Progress, getAsPercent (), o tla nka litekanyetso le bolelele bo rometsoeng ho tsoa ho File ebe o bo fetola liperesente. E bonolo ebile ea sebetsa.

Khoutu ena e bonahala e nepahetse, leha ho le joalo e tlola molao-motheo oa Open / Closed.

Empa hobaneng?

Hona joang?

 

Ha re leke ho fetola litlhoko

Kopo e ngoe le e ngoe ho fetoha ha nako e ntse e tsamaea e tla hloka likarolo tse ncha. Karolo e ncha ea ts'ebeliso ea rona e ka ba ho lumella 'mino hore o phalle ho fapana le ho jarolla lifaele feela. Bolelele ba faele bo emeloa ka li-byte, bolelele ba 'mino ka metsotsoana. Re batla ho fana ka sebaka sa tsoelo-pele ho bamameli ba rona, empa na re ka sebelisa sehlopha se ngotsoeng kaholimo?

Che, ha re khone. Tsoelo-pele ea rona e tlameha ho File. E khona feela ho laola tlhaiso-leseling ea faele, leha e ka sebelisoa ho 'mino. Empa ho etsa joalo re tlameha ho e fetola, re tlameha ho etsa Tsoelo-pele ho tseba 'mino le lifaele. Haeba moralo oa rona o ne o latela OCP, re ke ke ra hloka ho ama File kapa Progress. Re ka sebelisa tsoelo-pele e teng hape ebe re e sebelisa 'minong.

 

Leselinyana la litaba tse ncha
Se ke oa fetoa ke litaba tsa bohlokoa ka ho fetisisa tsa boqapi. Ingolise ho li amohela ka lengolo-tsoibila.

Tharollo e ka bang teng

Lipuo tse ngotsoeng ka matla li na le monyetla oa ho laola mefuta ea lintho ka nako ea tsona. Sena se re lumella ho tlosa mofuta oa tlhahiso ho seakhi sa Progress mme khoutu e tla tsoelapele ho sebetsa.

Tsoelo-pele ea sehlopha {

     lekunutu $ file;

     sebetsa __construct ($ file) {
         $ sena-> file = $ faele;
     }

    sebetsa getAsPercent () {
         khutlisa $ this-> file-> sent * 100 / $ this-> file-> length;
     }

}

Joale re ka tsebisa eng kapa eng ho Tsoelo-pele. Mme ka eng kapa eng, ke bolela eng kapa eng:

'Mino oa sehlopha sa

bolelele ba $ $ ea sechaba;
$ e rometsoe phatlalatsa;

$ artist ea sechaba;
albamo ea sechaba;
phatlalatsa $ releaseDate;

sebetsa getAlbumCoverFile () {
khutlisa 'Litšoantšo / Li koahela /'. $ sena-> sebini. '/'. $ ena-> albamo. '.png';
}
}

Mme sehlopha sa Mmino se kang se kaholimo se tla sebetsa hantle. Re ka e leka habonolo ka teko e ts'oanang le File.
teko ea mosebetsiItCanGetTheProgressOfAMusicStreamAsAPercent () {
$ music = 'Mino o mocha ();
$ music-> bolelele = 200;
$ music-> rometsoe = 100;

$ progress = Tsoelo-pele e ncha ($ music);

$ sena-> tiisaEquals (50, $ progress-> getAsPercent ());
}

Kahoo ha e le hantle litaba tse ka lekanyetsoang li ka sebelisoa le sehlopha sa Tsoelo-pele. Mohlomong re lokela ho e beha khoutu ka ho fetola lebitso le fetohang:

Tsoelo-pele ea sehlopha {

poraefete $ e ka lekanyetsoangContent;

sebetsa __construct ($asureableContent) {
$ sena-> lekalaContent = $ e lekanngoangContent;
}

sebetsa getAsPercent () {
kgutlisa $ this-> measureableContent-> sent * 100 / $ this- >asureableContent-> bolelele;
}

}

Ha re ne re totobatsa File e le mofuta oa tlhahiso, re ne re na le tšepo ea hore na sehlopha sa rona se ka sebetsana le eng. E ne e hlakile mme haeba ho na le letho le tlang, phoso e kholo e ka re joetsa.

Una sehlopha se fetang mokhoa oa sehlopha sa mantlha hore konteraka ea sehlopha sa motheo e se hlomphuoe ke sehlopha se nkiloeng. 

Ha re batle ho qetella re leka ho letsetsa mekhoa kapa ho fihlella libaka linthong tse sa lumellaneng le konteraka ea rona. Ha re ne re na le mofuta oa tlhahiso, konteraka e ne e boletsoe ke eona. Masimo le mekhoa ea sehlopha sa File. Kaha joale ha re na letho, re ka romella eng kapa eng, leha e le khoele mme e ka baka phoso e mpe.

Le hoja sephetho se tšoana maemong ka bobeli, ho bolelang hore khoutu e robeha, ea pele e hlahisitse molaetsa o monate. Leha ho le joalo, sena se lefifi haholo. Ha ho na mokhoa oa ho tseba hore na ho feto-fetoha ke eng - khoele molemong oa rona - le hore na ke thepa efe e ileng ea batloa mme ea se ke ea fumanoa. Ho thata ho lokisa le ho lokisa bothata. Setsebi sa mananeo se tlameha ho bula sehlopha sa Tsoelo-pele, ho se bala le ho se utloisisa. Konteraka, tabeng ena, ha o sa hlalose ka ho hlaka mofuta oa mofuta, ke defifelisitsoe ke boitšoaro ba Tsoelopele. Ke konteraka e boletsoeng e tsejoang feela ke Tsoelopele. Mohlala oa rona, ho joalo defie felisitsoe ka ho fihlella masimo a mabeli, a rometsoeng le bolelele, ka mokhoa oa getAsPercent(). Bophelong ba sebele konteraka e boletsoeng e ka ba thata haholo 'me ho thata ho e fumana ka ho batla metsotsoana e seng mekae feela ka tlelaseng.

Tharollo ena e khothalletsoa feela haeba ho se na malebela a mang a ka tlase a ka kenngoang ts'ebetsong habonolo kapa haeba a ka baka liphetoho tse kholo tsa meralo e sa faneng ka boiteko.

Ercole Palmeri

Leselinyana la litaba tse ncha
Se ke oa fetoa ke litaba tsa bohlokoa ka ho fetisisa tsa boqapi. Ingolise ho li amohela ka lengolo-tsoibila.

Lihlooho tsa morao tjena

Bahatisi le OpenAI ba saena litumellano tsa ho laola phallo ea tlhahisoleseling e sebetsitsoeng ke Artificial Intelligence

Mantaha o fetileng, Financial Times e phatlalalitse selekane le OpenAI. FT e fana ka tumello ea bongoli ba eona ba maemo a lefats'e…

30 April 2024

Litefiso tsa Marang-rang: Mona ke kamoo Litšebeletso tsa Phallo li U Etsang Hore U Lefe ka ho sa Feleng

Batho ba limilione ba lefella litšebeletso tsa ho phallela, ba lefa litefiso tsa khoeli le khoeli tsa ho ngolisa. Ke maikutlo a tloaelehileng hore u…

29 April 2024

Veeam e fana ka ts'ehetso e felletseng ea thekollo, ho tloha ts'ireletso ho isa ho karabelo le ho hlaphoheloa

Coveware ke Veeam e tla tsoelapele ho fana ka litšebeletso tsa karabelo ea liketsahalo tsa bosholu ba cyber. Coveware e tla fana ka bokhoni ba forensics le tokiso…

23 April 2024

Phetohelo ea Botala le Dijithale: Kamoo Tlhokomelo e Lebeletsoeng e Fetola Indasteri ea Oli le Khase

Tlhokomelo ea esale pele e tlisa phetoho lefapheng la oli le khase, ka mokhoa o mocha le o sebetsang oa taolo ea limela.…

22 April 2024