Nthawi zambiri ndimakumana ndi opanga omwe sanamvepo za mfundo za SOLID (ife analankhula za iwo mwatsatanetsatane apa. - Transl.) kapena mapulogalamu opangidwa ndi zinthu (OOP), kapena adamvapo za iwo, koma osawagwiritsa ntchito. Nkhaniyi ikufotokoza ubwino wa mfundo za OOP zomwe zimathandiza wopanga mapulogalamu pa ntchito yake ya tsiku ndi tsiku. Ena a iwo amadziwika bwino, ena osati kwambiri, kotero nkhaniyi idzakhala yothandiza kwa oyamba kumene komanso odziwa mapulogalamu.
Tikukukumbutsani:kwa owerenga onse a Habr - kuchotsera ma ruble 10 polembetsa maphunziro aliwonse a Skillbox pogwiritsa ntchito nambala yotsatsira ya Habr.
Skillbox imalimbikitsa: Maphunziro aulere pa intaneti "Wopanga Java".
DRY (Osadzibwereza Wekha)
Mfundo yosavuta, yomwe tanthauzo lake ndi lomveka bwino kuchokera ku dzina lakuti: "Osabwereza." Kwa wopanga mapulogalamu, izi zikutanthauza kufunikira kopewa ma code obwereza, komanso mwayi wogwiritsa ntchito zosokoneza pantchito yawo.
Mfundo ina yochokera ku SOLID toolkit. Imati ma subtypes ayenera kukhala olowa m'malo mwa supertype. Ndiko kuti, njira ndi ntchito zomwe zimagwira ntchito ndi superclass ziyenera kugwira ntchito popanda mavuto ndi magawo ake.
Nayi chidutswa cha code chomwe chimatsutsana ndi LSP.
Njira ya dera (Rectangle r) imawerengera dera la Rectangle. Pulogalamuyo idzawonongeka pambuyo pochita Square chifukwa Square si Rectangle pano. Malinga ndi mfundo ya LSP, ntchito zomwe zimagwiritsa ntchito zolozera zamakalasi oyambira ziyenera kugwiritsa ntchito zinthu zamakalasi otengedwa popanda malangizo owonjezera.
Mfundo iyi, yomwe ndi tanthauzo laling'ono, idaperekedwa ndi Barbara Liskov pamsonkhano waukulu wa 1987 wotchedwa "Data Abstraction and Hierarchy," motero dzina lake.
Mfundo Yogawanitsa Chiyankhulo (ISP)
Mfundo ina ya SOLID. Malingana ndi izo, mawonekedwe omwe sagwiritsidwa ntchito sayenera kukhazikitsidwa. Kutsatira mfundoyi kumathandiza kuti dongosololi likhalebe losinthika komanso loyenera kukonzanso pamene kusintha kumapangidwa pamalingaliro ogwiritsira ntchito.
Nthawi zambiri, izi zimachitika pamene mawonekedwe ali ndi ntchito zingapo nthawi imodzi, ndipo kasitomala amafunikira imodzi yokha.
Ubwino wa mfundo ya ISP ku Java ndikuti njira zonse ziyenera kukhazikitsidwa poyamba, ndipo pokhapo zitha kugwiritsidwa ntchito ndi makalasi. Choncho, mfundoyi imapangitsa kuti kuchepetsa chiwerengero cha njira.
Kukonzekera kwa mawonekedwe, osati kukhazikitsa
Chilichonse apa chikuwonekera bwino pamutuwu. Kugwiritsa ntchito mfundoyi kumapangitsa kuti pakhale ndondomeko yosinthika yomwe ingagwire ntchito ndi kukhazikitsa kwatsopano kwa mawonekedwe.
Muyenera kugwiritsa ntchito mawonekedwe amitundu yosiyanasiyana, mitundu yobwerera, kapena mtundu wa mkangano wa njira. Chitsanzo ndikugwiritsa ntchito SuperClass osati SubClass.
Ndiko kuti:
Mndandanda wa manambala= getNumbers();
Koma ayi:
Manambala a ArrayList = getNumbers ();
Pano pali kukhazikitsidwa kothandiza kwa zomwe zafotokozedwa pamwambapa.
Mfundo yogaΕ΅ira ena ntchito
Chitsanzo chofala ndi njira zofananira () ndi hashCode () mu Java. Pakafunika kufananiza zinthu ziwiri, izi zimaperekedwa kwa gulu lofananira m'malo mwa kasitomala.
Ubwino wa mfundoyi ndikuti palibe kubwereza kwa code ndipo ndikosavuta kusintha khalidwe. Zimagwiranso ntchito kwa oimira zochitika.
Mfundo zonsezi zimakulolani kuti mulembe code yosinthika, yokongola komanso yodalirika yokhala ndi mgwirizano wapamwamba komanso wochepa. Zachidziwikire, chiphunzitsocho ndi chabwino, koma kuti wopanga agwiritse ntchito chidziwitso chomwe wapeza, kuchita kumafunika. Mukadziwa bwino mfundo za OOP, chotsatira chanu chingakhale kuphunzira kamangidwe kake kuti muthane ndi zovuta zomwe zimachitika pakupanga mapulogalamu.