Koostis appi pärandist

Võite uskuda, mulle sõna, on see alati lõpeb saada

Mõiste pärand on kontseptsioon, et üks peab kapten, kui üks kasutab keelt objektKui soovite korraldada oma kood ümber objektid, on suur võimalus, et teil on silmitsi vajadusega kasutada pärandist. Kuigi pärand toob palju vaieldamatu eeliseid, see ei ole vastus kõikidele probleemidele. Kui jääte valimatu pärandist, siis on suur võimalus, et teil mordiez sõrmede paar kuud hiljem, kui teil on vaja, et areneda funktsionaalne ulatus oma taotluse. Muidugi see on ahvatlev öelda,"Kui ma pärib from Foo, siis ma olen kõiki oma funktsioone ilma pingutuseta.". Kuid samal ajal, siis koo silmused väga tugevalt mõlemad oma klassi ja kui nad tulevad erinevad tulevikus siis ei saa, et lihtsalt öelda"Ok, nad jagavad sama, kui mõned funktsioonid".

Siis saad hakata mõistma, et see on nüüd keeruline katse, kõik need klassid, mis ei ole kaugeltki selge, et jagada.

Probleemid algavad. Mure arendajad ei ole kogenud on, et üks ei saa aru, see asjaolu, et keset projekti või, kui klient soovib muuta tegevust olemasolevate element. See on vajalik, et oleks võimalik tuvastada eri tüüpi suhteid, mis võivad esineda klasside vahel. Klass võib olla seotud ühe teise kolme tüüpi suhteid: kompositsioon on alati paindlikum kui mixins ja ei ole otseselt seotud klassi, et hosts erinevalt pärandist.

Meie lennuk on pooleldi vahel auto ja helikopter

Seega, see oli nüüd sõidukid on kiirus, auto saab rulli ja helikopterid lennata. Nüüd oletame, et üks soovib luua klassi lennukid tehniliselt saab rulli ja lennata. Kuidas seda teha. Muidugi, me võiks kasutada mixins, kuid see ei ole ei rohkem ega vähem kui vorm mitu pärandist.

See oleks palju parem kui meie praegune lahendus ja lahendaks meie probleemi.

Teine lahendus oleks kasutada koostis, mis võimaldab isoleerida käitumist spetsialiseeritud klassid. Me siis kasuta juhtudel nende klassid teistes klassides. Seega võimaldab klassid on hea, lühike, ilma meetodeid, mis on üleliigne, ja väga kergesti testitav. Kasutada koostis, on juurdepääs täie võimsusega pühendatud klassi manipuleerida objekti. Nii saame panna paika: ma annan teile, et see lahendus on rohkem verbose kui mixins kuid see on ka palju paindlikumaid ja võimas, ja on praktikas ilmselt kõige lihtsam test. Näidisprojektide, ma initsialiseeritud objektid ja Veljed Tiivad lennata, aga praktikas kipub see, et kas selle töö käivitamine selle algupäraseks meetod, mis võimaldaks olla püsivad objektid ja vältida probleeme konkurentsi. Praktikas ei ole põhjust järgida täpset meetodit, miks kasutada koosseisu, mixins, või pärandist eksklusiivne viisil kui saate segatakse kolme. Ta peab teadma, kuidas kohandada ja kasutada lahust, mis on paindlikum. Me seetõttu kasutada pärandist, kui see on vajalik, pea meeles, et"arendaja on isik,". Me jätkata mixins kui üks on olukord,"arendaja tegutseb töötaja". See on ilmselt koosseisu, kui see suhe osutub midagi keerulist, objekti, millega nõutakse eraldi klassi. Kokkuvõtteks võib öelda, et sisu on see artikkel, arvan, et oma klassi, nii et nad on kõige modulaarne kui võimalik, ärge pulk ise kasti, mis ei pruugi te lõpuks minema, mäletan selgelt kirjeldada vastutust iga.

Kui oma testid on raske ellu viia, siis on see tihti märk on arhitektuuri teema, et sa peaksid panna kirp kõrva.

Täna, me räägime tarkvara arhitektuur. rakenduses Vaadata. Sisi, et see on võimalik.