10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

E masani ona ou feiloaʻi i tagata atiaʻe e leʻi faʻalogo i mataupu faavae SOLID (matou talanoa auiliili e uiga ia i latou iinei. — Transl.) po'o polokalame e fa'atatau i mea (OOP), pe na fa'alogo i ai, ae aua le fa'aaogaina i le fa'atinoga. O lenei tusiga o loʻo faʻamatalaina ai le aoga o mataupu faavae OOP e fesoasoani i le atinaʻe i ana galuega i aso taitasi. O nisi oi latou e lauiloa, o isi e le tele, o lea o le a aoga le tusiga mo tagata amata ma le poto masani polokalame.

Matou te faʻamanatu atu ia te oe: mo le aufaitau Habr uma - o le 10 ruble fa'aitiitiga pe a lesitala i so'o se a'oa'oga Skillbox e fa'aaoga ai le Habr promotional code.

Ua fautuaina e Skillbox: A'oa'oga i luga ole laiga "Fa'atupu Java".

FAAMAGO (Aua le toe fai oe lava)

O se mataupu faavae faigofie, o lona uiga e manino mai le igoa: "Aua le toe faia oe lava." Mo se tagata fai polokalame, o lona uiga o le manaʻoga e aloese mai le faaluaina o code, faʻapea foʻi ma le avanoa e faʻaoga ai le faʻaogaina i la latou galuega.

Afai e lua vaega toe fai i le code, e tatau ona tuʻufaʻatasia i se tasi auala. Afai e sili atu ma le tasi le faʻaaogaina o se tau faʻamaonia, e aoga le faʻaliliuina i se faʻasalalauga lautele.

E manaʻomia lenei mea ina ia faʻafaigofie le code ma faʻafaigofie ona tausia, o le sini autu lea o le OOP. E le tatau foi ona e soona fa'aoga le iuni, talu ai o le tulafono lava lea e tasi e le pasia le fa'amaoniga i le OrderId ma le SSN.

Encapsulating Suiga

O le tele o kamupani 'polokalame oloa o lo'o fa'asolosolo pea. O lona uiga e tatau ona fai suiga i le code, e manaʻomia ona lagolagoina. E mafai ona e faafaigofieina lou olaga e ala i le faaaogaina o le encapsulation. Ole mea lea ole a fa'atagaina oe e su'e lelei ma fa'atumauina lau fa'avae code o iai. O se tasi lea o faataitaiga.

Afai e te tusitusi i Java, ona tofia auala tumaoti ma fesuiaiga e ala i le faaletonu.

Tatala/tapuni mataupu faavae

O lenei mataupu faavae e mafai ona faigofie ona manatua e ala i le faitauina o le faamatalaga lenei: "Software entity (vasega, modules, functions, etc.) e tatau ona tatala mo le faʻaopoopoga, ae tapunia mo suiga." I le faʻatinoga, o lona uiga e mafai ona latou faʻatagaina a latou amio e suia e aunoa ma le suia o le code source.

E taua le mataupu faavae pe a manaʻomia suiga i le source code toe teuteuga, suʻega iunite, ma isi faiga. O tulafono laiti e mulimulita'i i le ta'iala tatala/tapuni e le suia pe a fa'alautele, o lea e itiiti lava fa'afitauli.

O se faʻataʻitaʻiga lea o tulafono laiti e solia ai lenei mataupu faavae.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

Afai e te manaʻomia le suia o se mea i totonu, e manaʻomia le tele o le taimi, talu ai o vaega uma o le code e iai se fesoʻotaʻiga ma le vaega manaʻomia e tatau ona suia.

I le auala, tatala-tapuni o se tasi lea o mataupu faavae ole SOLID.

Mataupu Faavae o le Tiutetautasi (SRP)

O le isi mataupu faavae mai le seti SOLID. O loo faapea mai “e na o le tasi lava le mafuaaga e mafua ai se suiga i le vasega.” E tasi lava le faafitauli e foia e le vasega. Atonu e tele ni metotia, ae o ia auala e faʻaaogaina naʻo se faʻafitauli masani. O metotia uma ma meatotino e tatau ona faʻaaogaina naʻo lenei.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

O le taua o lenei mataupu faavae o le tatalaina lea o le sooga i le va o le vaega o le polokalama ma le code. Afai e te faʻaopoopoina le sili atu ma le tasi galuega i se vasega, e faʻaalia ai se sootaga i le va o galuega e lua. O le mea lea, afai e te suia se tasi oi latou, o loʻo i ai se avanoa maualuga e faʻaleagaina ai le lona lua, lea e fesoʻotaʻi ma le muamua. Ma o lona uiga o le faʻateleina o faʻataʻitaʻiga o suʻega ina ia mafai ai ona iloa muamua faʻafitauli uma.

Fa'alagolago i le Fa'aliliuina Fa'avae (DIP)

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

I luga o se faʻataʻitaʻiga faʻataʻitaʻiga lea e faʻalagolago ai le AppManager i le EventLogWriter, lea e fesoʻotaʻi vavalalata ma AppManager. Afai e te manaʻomia se isi auala e faʻaalia ai se faʻamatalaga, pe o le tuleia, SMS poʻo le imeli, e tatau ona e suia le vasega AppManager.

E mafai ona foia le faafitauli e ala i le DIP. O lea, nai lo le AppManager, matou te talosagaina se EventLogWriter, lea o le a faʻaogaina e faʻaaoga ai le faʻavae.

O le DIP e mafai ai ona faigofie ona suia modules taʻitasi ma isi e ala i le suia o le faʻalagolago. Ole mea lea e mafai ai ona sui se tasi module e aunoa ma le afaina o isi.

Tulaga ae le o le tofi

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e UmaE lua auala autu e toe faʻaaoga ai le code: tofi ma le tuʻufaʻatasia, o ia mea uma e iai o latou lava lelei ma mea le lelei. E masani lava o le lona lua e sili ona lelei ona e sili atu ona fetuutuunai.

O le tuufaatasiga e te maua ai le tomai e suia ai le amio a se vasega i le taimi e fa'atulaga ai ana meatotino. Pe a faʻaaogaina fesoʻotaʻiga, e faʻaaogaina le polymorphism, lea e maua ai se faʻatinoga sili atu ona fetuutuunai.

E oo lava i Java Effective saunia e Joshua Bloch e fautuaina le filifilia o fatuga nai lo le tofi.

Barbara Liskov Substitution Principle (LSP)

O le isi mataupu faavae mai le SOLID toolkit. O lo'o ta'u mai ai o subtypes e tatau ona sui mo le supertype. O lona uiga, o metotia ma galuega e galulue faatasi ma se superclass e tatau ona mafai ona galue e aunoa ma ni faʻafitauli i ana vasega laiti.

O lo'o feso'ota'i le LSP ma le mataupu faavae o tiute e tasi ma le mataupu faavae o tiute fa'asoa. Afai e maua e se vasega le tele o galuega nai lo se vasega laiti, o le a le lagolagoina e le vaega mulimuli nisi o galuega, soli lenei mataupu faavae.

O se fasi code lea e feteenai ma LSP.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

O le eria (Rectangle r) metotia e fuafua ai le vaega o le Rectangle. O le a pa'ū le polokalame pe a uma ona faʻatino le Square ona o le Square e le o se Rectangle iinei. E tusa ai ma le mataupu faavae LSP, o galuega e faʻaogaina faʻamatalaga i vasega faavae e tatau ona mafai ona faʻaogaina mea faitino o vasega e maua mai e aunoa ma ni faʻatonuga faaopoopo.

O lenei mataupu faavae, o se faʻamatalaga faʻapitoa o se subtype, na tuʻuina mai e Barbara Liskov i se faʻamatalaga autu o le konafesi i le 1987 na faʻaulutalaina "Data Abstraction and Hierarchy," o lona igoa lea.

Fa'avae Vaevae Fa'amatalaga (ISP)

O le isi mataupu faavae SOLID. E tusa ai ma lea mea, o se atinaʻe e le faʻaaogaina e le tatau ona faʻatinoina. O le mulimuli i lenei mataupu faavae e fesoasoani i le faiga e tumau fetuutuunai ma talafeagai mo refactoring pe a faia suiga i le faʻaogaina manatu.

O le tele o taimi, o lenei tulaga e tupu pe a o'o i le atina'e le tele o galuega i le taimi e tasi, ma e mana'omia e le kalani na'o le tasi.

Talu ai o le tusiaina o se atinaʻe o se galuega faigata, o le suia pe a maeʻa le galuega e aunoa ma le solia o se mea o le a avea ma luitau.

O le lelei o le ISP mataupu faavae i Java o metotia uma e tatau ona faʻatinoina muamua, ma naʻo le taimi lava e mafai ai ona faʻaaogaina e vasega. O le mea lea, o le mataupu faavae e mafai ai ona faʻaitiitia le numera o metotia.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

Polokalama mo le atinaʻe, ae le o le faʻatinoga

O mea uma iinei e manino mai le igoa. O le faʻaaogaina o lenei mataupu faavae e taʻitaʻia ai le faʻatulagaina o code fetuutuunai e mafai ona galue ma soʻo se faʻatinoga fou o le atinaʻe.

E tatau ona e fa'aogaina le ituaiga fa'afeso'ota'i mo fesuiaiga, fa'afo'i ituaiga, po'o le metotia fa'aupuga ituaiga. O se faʻataʻitaʻiga o le faʻaaogaina o le SuperClass nai lo le SubClass.

O lena lava:

Lisi numera = getNumbers();

Ae leai:

ArrayList numera = getNumbers();

O se fa'atinoga fa'atino lea o mea o lo'o talanoaina i luga.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

Mataupu Faavae o le tuuina atu

O se faʻataʻitaʻiga masani o le tutusa () ma le hashCode () metotia i Java. Pe a mana'omia le fa'atusatusaina o meafaitino se lua, e tu'uina atu lea gaioiga i le vasega tutusa ae le o le tagata o tausia.

O le lelei o le mataupu faavae o le leai o se kopi o le code ma e fai si faigofie le suia o amioga. E fa'atatau fo'i ile tu'uina atu o fa'atasiga.

10 Mataupu Faavae Polokalama Fa'atatau i Mea e Tatau Ona Iloa e Tagata Atina'e Uma

O nei taʻiala uma e faʻatagaina oe e tusi sili atu ona fetuutuunai, matagofie ma faʻatuatuaina tulafono faʻatasi ma le maualuga o le faʻatasi ma le maualalo o fesoʻotaʻiga. O le mea moni, e lelei le aʻoaʻoga, ae mo se tagata atiaʻe e faʻaaoga moni le malamalama na maua, e manaʻomia le faʻataʻitaʻiga. O le taimi lava e te iloa ai mataupu faavae o le OOP, o lau isi laasaga atonu o le aʻoaʻoina o mamanu mamanu e foia ai faʻafitauli masani o le atinaʻeina o polokalama.

Ua fautuaina e Skillbox:

puna: www.habr.com

Faaopoopo i ai se faamatalaga