10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Inta badan waxaan la kulmaa horumariyayaal aan maqal mabaadi'da SOLID (annaga iyaga oo si faahfaahsan uga hadlay halkan. - Turjumi Maqaalkani wuxuu qeexayaa faa'iidooyinka mabaadi'da OOP ee ka caawiya horumariyaha shaqadiisa maalinlaha ah. Qaar ka mid ah ayaa si fiican loo yaqaan, kuwa kale maahan, sidaas darteed maqaalku wuxuu faa'iido u yeelan doonaa bilawga iyo barnaamijyada khibrada leh.

Waxaan xusuusineynaa: dhammaan akhristayaasha Habr - qiimo dhimis 10 ruble ah marka la qorayo koorsada Skillbox iyada oo la adeegsanayo koodhka xayeysiinta Habr.

Skillbox waxay ku talinaysaa: Koorso online ah oo waxbarasho "horumariyaha Java".

QALAN (Ha ku celin Naftaada)

Mabda' fudud oo fudud, oo nuxurkiisu ka cad yahay magaca: "Ha ku celin naftaada." Barnaamij-sameeyaha, tani waxay ka dhigan tahay baahida loo qabo in laga fogaado koodka nuqulka ah, iyo sidoo kale fursadda ay ku isticmaali karaan abstraction shaqadooda.

Haddii ay jiraan laba qaybood oo soo noqnoqda ee koodhka, waa in lagu daraa hal hab. Haddii qiimaha adag ee la isticmaalo in ka badan hal mar, waxaa habboon in loo beddelo joogto ah dadweynaha.

Tani waxay lagama maarmaan u tahay si loo fududeeyo koodhka oo loo fududeeyo ilaalinta, taas oo ah yoolka ugu weyn ee OOP. Sidoo kale waa inaadan si xad dhaaf ah u isticmaalin ururka, maadaama isla koodka aanu ku gudbin doonin xaqiijinta OrderId iyo SSN-ka.

Soo koobida Isbedelada

Badeecooyinka software-ka ee shirkaduhu si joogto ah ayay u horumarayaan. Tani waxay ka dhigan tahay in loo baahan yahay in isbeddel lagu sameeyo koodhka, waxay u baahan tahay in la taageero. Waxaad noloshaada ku fududayn kartaa adigoo isticmaalaya koofiyadaha. Tani waxay kuu ogolaaneysaa inaad si hufan u tijaabiso oo aad u ilaaliso saldhigga koodkaaga jira. Waa kan hal tusaale.

Haddii aad ku qorto Java, markaa u qoondee hababka gaarka ah iyo doorsoomayaasha by default.

Mabda'a furan/xiran

Mabda'an si fudud ayaa loo xasuusan karaa marka la akhriyo bayaankan soo socda: "Hay'adaha softiweerka ah (fasallada, qaybaha, shaqooyinka, iwm.) waa inay u furnaadaan kordhinta, laakiin u xiran yihiin wax ka beddelka." Ficil ahaan, tani waxay ka dhigan tahay inay u oggolaan karaan in hab-dhaqankooda la beddelo iyada oo aan la beddelin koodhka isha.

Mabda'a ayaa muhiim ah marka isbeddelada lagu sameeyo koodhka isha ay u baahan yihiin dib-u-eegis code, tijaabinta cutubka, iyo hababka kale. Xeerka raacaya mabda'a furan/xiran isma beddelo marka la kordhiyo, markaa waxaa jira dhibaatooyin aad u yar.

Halkan waxaa ah tusaale kood ka soo horjeeda mabda'a.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Haddii aad u baahan tahay inaad wax ka bedesho, waxay qaadan doontaa wakhti badan, maadaama dhammaan qaybaha koodhka ee xidhiidhka la leh jajabka la rabo waa in la beddelo.

Jid ahaan, furfurnaan-xirnaantu waa mid ka mid ah mabaadi'da SOLID.

Mabaadi'da Mas'uuliyadda Keliya (SRP)

Mabda' kale oo ka socda set SOLID. Waxay sheegaysaa in "ay jirto hal sabab oo kali ah oo keenta isbeddelka fasalka." Fasalka wuxuu xalliyaa hal dhibaato oo kaliya. Waxay yeelan kartaa dhowr habab, laakiin mid kasta oo iyaga ka mid ah waxaa loo isticmaalaa oo keliya in lagu xalliyo dhibaato guud. Dhammaan hababka iyo guryaha waa inay u adeegaan oo keliya tan.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Qiimaha mabda'aani waa inuu dabciyo isku xirka u dhexeeya qaybta software-ka gaarka ah iyo koodka. Haddii aad ku darto wax ka badan hal shaqo fasalka, waxay soo bandhigaysaa xiriirka ka dhexeeya labada hawlood. Sidaa darteed, haddii aad mid ka mid ah bedesho, waxaa jira fursad sare oo aad ku burburin karto kan labaad, kaas oo ku xiran midka koowaad. Waxayna tani la macno tahay kordhinta wareegyada imtixaanada si loo aqoonsado dhibaatooyinka oo dhan horudhac.

Mabaadi'da Ku-tiirsanaanta Ku-tiirsanaanta (DIP)

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Korku waa tusaale kood ah halka AppManager uu ku xidhan yahay EventLogWriter, kaas oo isna si dhow ula socda AppManager. Haddii aad u baahan tahay hab ka duwan si aad u muujiso ogeysiis, ha ahaato riix, SMS ama iimayl, waxaad u baahan tahay inaad bedesho fasalka AppManager.

Dhibaatada waxaa lagu xallin karaa iyadoo la isticmaalayo DIP. Marka, halkii laga isticmaali lahaa AppManager, waxaan codsaneynaa EventLogWriter, kaas oo la geli doono iyadoo la isticmaalayo qaabka.

DIP waxa ay suurtogal ka dhigtaa in si sahlan loogu beddelo cutubyada gaarka ah kuwa kale iyada oo la beddelayo cutubka ku-tiirsanaanta. Tani waxay suurtogal ka dhigaysaa in la beddelo hal module iyada oo aan saameyn ku yeelan kuwa kale.

Halabuurka halkii dhaxalka

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta OgaadoWaxaa jira laba siyaabood oo waaweyn oo dib loogu isticmaalo koodka: dhaxalka iyo curinta, labaduba waxay leeyihiin faa'iidooyin iyo faa'iido darrooyin u gaar ah. Sida caadiga ah kan labaad ayaa la door bidaa sababtoo ah wuu dabacsan yahay.

Halabuurku waxa uu ku siinayaa awood aad ku beddesho habdhaqanka fasalka wakhtiga runtime adoo dejinaya sifooyinkooda. Marka la fulinayo isdhexgalka, polymorphism ayaa la isticmaalaa, taas oo siinaysa hirgelin dabacsanaan badan.

Xitaa Java wax ku ool ah oo uu qoray Joshua Bloch wuxuu ku talinayaa in la doorto halabuurka ka beddelka dhaxalka.

Mabda'a Beddelka Barbara Liskov (LSP)

Mabda' kale oo ka socda qalabka SOLID. Waxay sheegaysaa in subtypes ay tahay in la beddelo nooca supertype. Taasi waa, hababka iyo hawlaha la shaqeeya superclass waa inay awoodaan inay ku shaqeeyaan dhibaato la'aan fasaladooda hoose.

LSP waxay la xiriirtaa mabda'a mas'uuliyadda kaliya ah iyo mabda'a mas'uuliyadda la wadaago labadaba. Haddii fasalku bixiyo shaqeyn ka badan kan hoose, markaa kan dambe ma taageeri doono qaar ka mid ah shaqeynta, jebinta mabda'an.

Halkan waxaa ah qayb kood ka soo horjeeda LSP.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Habka (leydi r) wuxuu xisaabiyaa bedka leydi. Barnaamijku wuu burburi doonaa ka dib marka la fuliyo Square sababtoo ah Square maaha halkan leydi. Marka loo eego mabda'a LSP, shaqooyinka isticmaala tixraacyada fasallada aasaasiga ah waa inay awoodaan inay isticmaalaan walxaha fasallada la soo saaray iyada oo aan lahayn tilmaamo dheeraad ah.

Mabda'an, oo ah qeexitaan gaar ah oo nooc-hoosaad ah, ayaa waxaa soo jeedisay Barbara Liskov 1987-kii khudbadii shirka ee cinwaankeedu ahaa "Data Abstraction and Heerarchy," sidaas darteed magaceeda.

Mabaadi'da Kala Qaybsanaanta Interface (ISP)

Mabda' kale oo SOLID ah. Sida uu qabo, interface aan la isticmaalin waa in aan la hirgelin. Raacitaanka mabda'aani waxay ka caawisaa nidaamku inuu ahaado mid dabacsan oo ku haboon dib u habeynta marka isbedel lagu sameeyo macquulnimada hawlgalka.

Inta badan, xaaladdani waxay dhacdaa marka interface ka kooban yahay dhowr hawlood hal mar, iyo macmiilku u baahan yahay oo kaliya mid ka mid ah.

Maadaama qorista interface ay tahay hawl adag, beddelka ka dib marka shaqada la dhammeeyo iyada oo aan waxba la jebin waxay noqon doontaa caqabad.

Faa'iidada mabda'a ISP ee Java waa in dhammaan hababka ay tahay in la fuliyo marka hore, ka dibna kaliya waxaa loo isticmaali karaa fasallo. Sidaa darteed, mabda'a ayaa suurtogal ka dhigaya in la yareeyo tirada hababka.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Programming for the interface, ma aha fulinta

Wax kasta oo halkan ku cad magaca. Codsashada mabda'aani waxay keenaysaa abuurista kood dabacsan oo la shaqeyn kara wax kasta oo cusub oo is-dhexgalka ah.

Waa inaad u isticmaashaa nooca interface doorsoomayaasha, noocyada soo noqoshada, ama nooca dooda habka. Tusaale ahaan waa isticmaalka SuperClass halkii aad ka isticmaali lahayd fasal-hoosaadka.

Taasi waa:

Liiska tirooyinka=hel Numbers();

Laakiin maaha:

Nambarada ArrayList = heliNumbers();

Halkan waxaa ah fulinta wax ku ool ah ee waxa kor looga hadlay.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Mabda'a ergada

Tusaalaha caadiga ah waa hababka siman () iyo hashCode() ee Java. Marka ay lagama maarmaan noqoto in la isbarbar dhigo laba shay, ficilkan waxaa loo wakiishay fasalka u dhigma halkii macmiilka mid ka mid ah.

Faa'iidada mabda'a ayaa ah in aysan jirin nuqul ka mid ah koodka oo ay fududahay in la beddelo dabeecadda. Waxa kale oo ay khusaysaa ergada dhacdada.

10 Mabaadi'da Barnaamijka Ku Wajahan Shayga Waa in uu Horumariye Kasta Ogaado

Dhammaan mabaadi'daani waxay kuu oggolaanayaan inaad qorto kood aad u jilicsan, qurux badan oo la isku halleyn karo oo leh isku xirnaanta sare iyo isku xirnaanta hoose. Dabcan, aragtidu waa wanaagsan tahay, laakiin horumariyaha si uu dhab ahaantii u isticmaalo aqoonta la helay, ku celcelinta ayaa loo baahan yahay. Markaad barato mabaadi'da OOP, tillaabadaada xigta waxay noqon kartaa inaad barato qaababka naqshadaynta si aad u xalliso dhibaatooyinka horumarinta software ee caadiga ah.

Skillbox waxay ku talinaysaa:

Source: www.habr.com

Add a comment