Sastav za spasenje nasljedstva

Možete mi vjerovati na riječ, to je na kraju i dogoditi

Pojam baštine, je koncept koji smo trebali savladati, kada koristimo jezikAko želite organizirati svoj kod oko objekata, postoji velika vjerojatnost da ćete naići kada je potrebno koristiti baštinu. Dobro, da nasljedstvo donosi brojne prednosti, to nije odgovor na sva pitanja. Ako se nađete u korištenju slijepa baštinu, postoji velika vjerojatnost da ste mordiez prste, nekoliko mjeseci kasnije, kada ćete morati promijeniti funkcionalni kapacitet za vaše aplikacije. Naravno, postoji napast reći:"Ako ja nasljeđuje Foo, onda sam sve svoje mogućnosti bez napora.". Ali u isto vrijeme, kravata je vrlo jaka svoje dvije klase, i ako oni dolaze razilaziti se u budućnosti nećete moći da možete samo reći"u Redu, oni dijele, kada je isti neke značajke".

Onda ćete shvatiti da je to sada teško provjeriti za svaku od ovih klasa, i da to nije očito, podijeliti ih.

I počinju problemi.

Briga za programere bez radnog iskustva u tome, da nitko ne razumije ove činjenice, da je u sredini projekta, ili kada klijent želi napraviti promjene u funkcioniranju postojećeg elementa.

Treba znati otkriti različite vrste odnosa koji mogu postojati između klasa. Klasa može biti povezan s drugim, u tri vrste odnosa: sastav uvijek će biti fleksibilniji, da mixin i neće biti izravno povezan s klase, u kojoj se nalazi, za razliku od nasljedstva.

Dakle, sada vozila koja imaju brzinu, automobili mogu voziti i helikopteri mogu da lete.

Pretpostavimo sada da želimo stvoriti klasu za zrakoplove, koji tehnički mogu voziti i letjeti.

Naš avion nalazi na pola puta između vozila i helikoptera

Naravno, bilo bi moguće koristiti mixins, ali to nije ni manje ni više, da je oblik višestrukog nasljeđivanja. To bi bilo mnogo bolje od naše sadašnje rješenje i da će riješiti naš problem. Drugo rješenje bi bilo da koriste sastojci, koji se može izolirati ponašanja u specijalizirane učionice. Možete onda koristiti instance ove klase u druge razrede. To vam omogućuje da imaju nastavu, karakteristične, bez tehnike nema, a vrlo je lako dokazati. Koristiti sastav je imati pristup na snagu klase, dizajniran za manipulacije s objektom. Radimo ovako: Ja priznajem, da je to rješenje je više težak nego mixins, ali ona je mnogo više fleksibilan i moćan, i da će biti u praksi, naravno, lakše provjeriti. Za demonstraciju sam inicijalizacija objekata Wheels i Krila u letu, ali u praksi mi bi radije bi taj posao init metoda initialize, koji će imati stalni objekti i izbjegli probleme tržišnog natjecanja. U praksi, nema razloga slijediti točan način, zašto koristiti sastav, mixins ili nasljedstva i isključivo, kada možete tri. Mora biti u stanju prilagoditi i koristiti rješenje koje će biti fleksibilniji.

Možete koristiti baštinu, kada je to potrebno, zapamtite,"programer-to je čovjek".

Možete ići na mixins, kada smo u situaciji"developer, djeluje kao plaćeni radnik". Možete se prijaviti vjerojatno do, ako je taj odnos pretvara da je nešto sofisticirani, objekta, treba klasa, posvećen. Sažeti sadržaj ovog članka je, mislim, svoje klase, kako bi oni bili što je moguće više modularni možda ne čekić sebi glavu u prozoru, kada se nećete moći izvući nakon toga treba razgraničiti odgovornosti svakog od njih. Ako su vaši testovi postaju teško utvrditi, to je često znak problema arhitekture, koje bi trebali staviti čip u uho. Danas će se raspravljati o arhitekturi softvera. js. Sisi, to je moguće. Nemojte ostati sama.