SOLID o a mataupu faʻavae e 5 o polokalame faʻatulagaina mea faʻataʻitaʻi

Faʻatusa mausali foliga geometric
aʻoga
1

SOLID o se faʻapuʻupuʻu, e faʻasino i mataupu faʻavae e lima o le faʻatulagaina o mea (OOD poʻo le OOP). Nei o taʻiala e mafai e le au atinaʻe ona faʻaaoga e fausia ai ni polokalama e faigofie ona faʻatautaia, faʻataʻitaʻi ma faʻalauteleina. Malamalama i nei manatu faʻavae o le a avea ai oe ma sili atu atinaʻe ma fesoasoani ia te oe e aloese ai mai le faʻafoeina o polokalama. O le a le uiga o le avea ma se polokalama lelei?

Soʻo se tasi ma se poto masani i polokalama polokalama faʻamasino polokalama polokalama tusia e isi, faʻaaogaina le faʻataʻitaʻiga faʻavae faavae i luga oa latou galuega ala.

I le gasologa o laʻu galuega faʻapolofesa, ua ou iloa le tele o aufaʻatupega, ma ua ou vaʻaia le afe ma afe o laina o le code ma pe a ou manaʻomia e iloiloina se atiaʻe tomai ou te vaʻai atu i autu autu e lua:

  • Faigofie ile faitau ole numera;
  • E faʻapea a latou code o le a galue ma evolve i le aluga o taimi.

Mea e laki ai, e i ai ni faʻavae taua poʻo mataupu faʻavae e faigofie ai ona sili atu i le faʻailogaina.

le faʻapuʻupuʻu SOLID o lona uiga mo:
S: mataupu faʻavae o le tiʻatasi tiute
O: matala-tapunia mataupu faavae
L: Liskov suia mataupu faavae
I: Mataupu faʻavae o vavaega vavaeeseina
D: Mataupu faʻavae o le Suigaina o Faʻamoemoega

Tatou amata i le suʻesuʻeina i le muamua mataupu faavae SOLID, e igoa o le

Nofofua Tiute Mataupu Faavae

O se vasega (poʻo le module) tatau ona tasi lava le mafuaʻaga e sui ai, ia suia.

O le manatu lava ia e matua faigofie, ae ina ia ausia lenei faigofie o le faʻatinoina ala mafai ona sili ona faigata. E tasi lava le mafuaʻaga e tatau ai ona sui se vasega.

Ae aisea? 

Aisea e taua tele ai le tasi le mafuaʻaga e sui ai?

Mo se faʻataʻitaʻiga, afai e lua mafuaʻaga eseʻese mo le suia, e mafai ona mafaufauina e lua 'au eseʻese mafai galulue i le tutusa code mo lua eseese mafuaʻaga. Taʻitasi e tatau ona faʻatinoina a latou lava fofo, lea i le tulaga o se tuʻufaʻatasia gagana (pei o C ++, C # poʻo Java), e mafai ona taitai atu ai i modules e le ogatasi ma isi 'au poʻo isi vaega o le talosaga.

Le isi faʻataʻitaʻiga, afai o loʻo e faʻaogaina se gagana faʻamatalaina, oe ono manaʻomia le toe faʻataʻitaʻia o le vasega e tasi poʻo le vaega mo mafuaaga eseese. O lona uiga ia tele galuega, taimi ma taumafaiga mo le faʻatonutonu lelei.

Faʻailoa le tasi vaega o le vasega poʻo le module e tatau ona i ai e sili atu ona faigata nai lo le na o le vaʻai i se lisi siaki e tamoe ai suʻega. 

Ae tatou taumafai e mafaufau mai se laʻititi poto faʻapitoa manatu, o lona uiga, tatou taumafai e suʻesuʻe tagata faʻaoga o la tatou vasega poʻo le module, o latou na o le a faʻaaogaina. O se itu taua e tatau ona tatou manatuaina pea, o le mea moni o tagata faʻaoga le apalai poʻo le faiga tatou te atiaʻe o loʻo tautuaina e se vaega faapitoa o i latou ia e manaʻomia ni suiga i ai. O i latou na tautua o le a fesili e sui le vasega po o le module. 

Nisi faʻataʻitaʻiga o ata ma latou faʻaaogaina:

  • Tausiga module: o le tagata faʻaaoga e faia luga o nofoaga autu o faʻamatalaga database ma polokalama tusi ata.
  • Lipoti module: o le tagata faʻaaoga e faia i luga o ofisa tagata faigaluega, tausitusi ma gaosiga.
  • Totogi fuafuaina module mo le totogiina pulega faiga: tagata faʻaaoga mafai aofia ai loia, pule ma tausitusi.
  • Tusitusiga suʻega module mo se pulega pulega potu tusi: tagata faʻaaoga e mafai ona avea ma ona sui e le faletusi poʻo tagata asiasi ma tagata faʻatau o le potutusi lava ia.

Afai la o le laʻasaga muamua o le sailia lea o tagata faʻatino poʻo le tagata faʻaalia o loʻo i ai le matafaioi o le faʻatalanoa ma le module, faʻafesoʻotaʻi tagata taʻitasi ma uma matafaioi mafai ona faigata. I totonu o se kamupani laʻititi, tasi tagata mafai ona faia tele matafaioi ao i se tele kamupani e mafai ona tele tagata e i ai le tasi matafaioi. 

E foliga mai e sili atu le talafeagai e faʻailoa ai matafaioi, nai lo tagata poʻo tagata faʻaaoga.

O lea:

  • o loʻo faʻamatalaina e le tagata faʻaaogaina le polokalame o mafuaʻaga mo le suiga;
  • o le tiutetauave o se aiga o gaioiga e faʻamalieina ai manaʻoga o se faapitoa faʻatinoina, o lena, o le tagata e faʻaaogaina le polokalama;
  • o tagata faʻatino, o le tagata faʻaaoga avea ma mafuaʻaga o suiga mo le aiga o gaioiga e tatau ona faʻamalieina ai le tagata e manaʻomia le manaʻoga;
  • o le atinaʻe o manaʻoga manaʻoga, taʻitaʻia le atinaʻe o galuega;

SOLID mataupu silisili

Seʻi tatou vaʻai i ni faʻataʻitaʻiga

Faapea tatou i ai se Tusi vasega e encapsulate le manatu o se tusi ma lona aoga.

vasega tusi {

    galue getTitle () {

        toe faafoi "O Se Tusi Sili";

    }

    galue getAuthor () {

        toe faafoi "Alessandro Baricco";

    }

    galue i leisi itulau () {

        // itulau e sosoʻo

    }

    galuega lolomiCurrentPage () {

        faaleo le “anotusi o le itulau ua i ai nei”;

    }

}

O se vasega masani lava lenei. E i ai la matou tusi, ma e mafai e le vasega ona aumai ia matou le ulutala, latou te mafai ona tuʻuina mai ia i matou le tusitala, ma e mafai ona latou agai i luma. I le iuga, e mafai foi ona lolomiina le itulau nei i luga o le lau. 

Peitai, e i ai se laʻititi faʻafitauli. 

Mafaufau e uiga i tagata faʻataʻitaʻi aofia ai i le puleaina o le Tusi mea, o ai latou? 

E faigofie ona tatou mafaufau i ni tagata eseʻese e lua iinei: Tusi tusi (pei o le tagata tausi potutusi) u Faʻamatalaga tusitusia auala (pei o le faʻafefea ona matou manaʻo e tuʻuina atu mea i le tagata e faʻaaogaina: luga-mata, faʻafanua tagata faʻaaoga, tusitusiga-naʻo tagata faʻaoga, atonu lolomi). 

O lea e i ai a matou tagata eseʻese eseʻese e lua e fefaʻasoaʻi ma le vasega.

I se faapuupuuga o lenei vasega fefiloi i le va:

  • pisinisi pisinisi ma 
  • o le ata 

o lenei e mafai ona avea ma se faʻafitauli ona e solia ai le tasi aitalafu faʻavae (SRP). 

Faʻafefea mafai ona tatou suia, faʻafefea ona tatou faʻaleleia lenei tulafono e faʻaaloalo ai i le mataupu faʻavae o le nofofua tiutetauave?

Tagaʻi ane i le faʻailoga lea:

vasega tusi {

    galue getTitle () {

        toe faafoi "Oceano Mare";

    }

    galue getAuthor () {

        toe faafoi "Alessandro Baricco";

    }

    aoga itulau liliu () {

        // itulau e sosoʻo

    }

    galue getCurrentPage () {

        faaleo le “anotusi o le itulau ua i ai nei”;

    }

}

Ofisa lomitusi {

    lolomiina le itulau lolomi ($ itulau);

}

vasega StampaLibro faʻaaogaina Lolomitusi {

    aoga lolomitusi ($ itulau) {

        siʻi $ itulau;

    }

}

 

vasega HtmlPrinter faʻaaogaina le lolomitusi {

    aoga lolomitusi ($ itulau) {

        siuleo ' '. $ itulau ' ';

    }

}

Lenei faigofie faigofie faʻataʻitaʻiga faʻaali mai pe faʻafefea ona vavaeʻese le ata mai le pisinisi malamalama, ma i le usitaʻia o le SRP o loʻo ofaina sili lelei i le fetuʻunaʻiga o la tatou poloketi.

Seʻi o tatou vaʻai i se isi faʻataʻitaʻiga:

O se faʻataʻitaʻiga tutusa ma le tasi i luga o le taimi e mafai ai e se mea faitino ona sefe ma toe aumai ia lava mai le ata.

vasega tusi {

    galue getTitle () {

        toe faafoi "Oceano Mare";

    }

    galue getAuthor () {

        toe faafoi "Alessandro Baricco";

    }

    aoga itulau liliu () {

        // itulau e sosoʻo

    }

    galue getCurrentPage () {

        faafoi "mea o loʻo iai nei itulau";

    }

    galue faʻasao () {

        $ filename = '/ pepa aloaia /'. $ lenei-> getTitolo (). '-'. $ lenei-> getAuthor ();

        file_put_contents ($ filename, serialize ($ lenei));

    }

}

Pei o le taimi muamua, iinei foi e mafai ona tatou faʻailoaina tagata eseʻese pei o Tusi tusi (pei o le tagata tausi potutusi) u Tutumau. Soo se taimi tatou te mananaʻo ai e suia le auala tatou te o atu ai mai le itulau i le itulau, e tatau ona tatou suia lenei vasega. E tele ni mafuaʻaga e ala ai ona tatou suia.

vasega tusi {

    galue getTitle () {

        toe faafoi "Oceano Mare";

    }

    galue getAuthor () {

        toe faafoi "Alessandro Baricco";

    }

    aoga itulau liliu () {

        // itulau e sosoʻo

    }

    galue getCurrentPage () {

        faafoi "mea o loʻo iai nei itulau";

    }

}

vasega SimpleFilePersistence {

    aoga sefe (Tusi $ tusi) {

        $ filename = '/ pepa aloaia /'. $ tusi-> getTitle (). '-'. $ tusi-> getAuthor ();

        file_put_contents ($ filename, serialize ($ tusi));

    }

}

O le siʻitia o le finafinau i leisi vasega o le a manino eseʻese ai tiutetauave ma o le a tatou saoloto e fesuiaʻi finafinau metotia e aunoa ma le aafia ai o tatou Tusi vasega. Mo se faʻataʻitaʻiga, o le faʻatinoina o se DatabasePersistence vasega o le a le taua, ma o la tatou pisinisi faʻatulagaina fausia faataamilo tusi faʻagaioiga o le a le suia.

Faʻaauau i le faitauina o le mataupu faʻavae lua Tatala / Tapuni ->

1 faʻamatalaga

Tuu se faʻamatalaga

Ole a le lolomiina lou tuatusi imeli. Ua faailogaina ia fanua faʻatagaina *

liskov mataupu faʻavae
aʻoga
Mataupu Faavae o le Liskov Suiga, lona tolu o mataupu autu a le SOLID

Tamaiti vasega le tatau ona aafia pe suia le ituaiga faʻauiga o le matua vasega. O le mataupu o lenei mataupu faavae na faalauiloa mai e Barbara Liskov i le autu o le konafesi 1987 ma mulimuli ane lolomiina i se tusitusiga faatasi ai ma Jannette Wing i le 1994. O le latou faauigaga autu…

google maketi faiga
aʻoga
Faʻafefea ona faʻaaoga le Google Trends mo le taimi tonu maketiga

O se tasi o faʻafitauli faigata na fetaiaʻi ma kamupani i le 2020, o le malamalama lea i vaega o oloa e faʻalauteleina a latou pisinisi: o le mea moni, o le tele o vaega o pisinisi ua pagatia i aʻafiaga mamafa na faigata ai i kamupani ona ofi atu ia latou, ae maise lava o se tagata taʻalo fou. E toaitiiti lava vaega gaosi ...

pisinisi atamai fuafuaga
auala
Taʻiala mo le manuia pisinisi Pisinisi

Fausiaina o se manuia taʻiala mo lau Pisinisi atamai atamai amata i se saʻo vaʻaiga o sini. Matou te vaʻavaʻai i lalo atu o mataupu taua. Iloiloina le tulaga o iai nei O se matua mea sese lava le le manatu faʻatau i lenei itu. Iloilo le tulaga o iai nei o lona uiga auʻiliʻili auala, fausaga ...