Die samestelling van die redding van die erfenis

Kan jy glo my woord, dit is altyd eindig deur te kry

Die konsep van die erfenis is'n konsep wat'n mens moet meester wanneer'n mens gebruik van'n taal voorwerp

As jy wil om te organiseer jou kode om voorwerpe, daar is'n sterk moontlikheid dat jy sal gekonfronteer word met die behoefte om te gebruik erfenis.

Hoewel die nalatenskap bring'n baie van die onteenseglike voordele, hierdie is nie die antwoord op al die probleme. As jy val in die onoordeelkundige gebruik van erfenis, daar is'n hoë kans dat jy mordiez vingers'n paar maande later wanneer jy dit nodig om te ontwikkel die funksionele omvang van jou aansoek.

Natuurlik is dit aanloklik om te sê,"As ek erf van Foo, dan sal ek al sy funksies sonder enige moeite.".

Maar op dieselfde tyd, jy sal bind baie sterk beide van jou klasse en as hulle kom om te divergeer in die toekoms sal jy nie in staat wees om dat jy net sê"Ok, hulle deel dieselfde toe 'n paar funksies". Jy sal dan begin om te besef dat dit is nou moeilik om te toets elkeen van hierdie klasse, en dat dit is ver van duidelik aan die split. Die probleme begin. Die kommer vir ontwikkelaars nie ervare is dat'n mens nie besef hierdie feit dat in die middel van'n projek of wanneer die kliënt wil hê om'n verandering te maak aan die werking van'n bestaande element. Dit is nodig om in staat wees om op te spoor die verskillende tipes van verhoudings wat kan bestaan tussen klasse. 'n klas kan word aan mekaar verbind deur drie tipes van verhoudings: Die samestelling sal altyd wees meer buigsaam as'n mixins en sal nie direk verband hou met die klas wat die leërskare in teenstelling met die erfenis.

Daarom, dit was nou die voertuie het'n spoed, die motor kan rol en die helikopters kan vlieg.

Nou laat ons sê dat'n mens wil om te skep'n klas vir die vliegtuie tegnies kan rol en vlieg. Hoe om dit te doen. Van die kursus, kan ons gebruik mixins, maar dit is nie meer en nie minder as'n vorm van verskeie erfenis.

Dit sou veel beter as ons huidige oplossing en sou ons probleem op te los.

Die ander oplossing sou wees om te gebruik in die samestelling, wat toelaat dat jy om te isoleer gedrag in gespesialiseerde klasse. Ons sal dan gebruik om gevalle van hierdie klasse in ander klasse. Dit maak dit dus moontlik om klasse skoon, bondige, sonder metodes wat is oorbodig, en baie maklik toetsbaar. Gebruik die samestelling, dit is om toegang tot die volle krag van'n toegewyde klas te manipuleer'n voorwerp.

Ons vliegtuig is halfpad tussen die motor en die helikopter

So ons kan sit dit in die plek: ek gee dat hierdie oplossing is meer verbose as mixins maar dit is ook baie meer soepel en kragtige, en sal in die praktyk is waarskynlik die maklikste om te toets. Vir die demonstrasie, ek geïnisialiseer die voorwerpe Wiele en Vlerke op die vlieg, maar in die praktyk is dit geneig is om te doen hierdie werk van die inisialisering in die inisialiseer metode wat jou sal toelaat om aanhoudende voorwerpe en om te verhoed dat die probleme van die kompetisie. In die praktyk, is daar geen rede om te volg'n akkurate metode, hoekom gebruik die samestelling, mixins, of erfenis in'n eksklusiewe wyse wanneer jy kan meng die drie. Hy moet weet hoe om aan te pas en die gebruik van die oplossing wat sal word meer buigsaam. Ons sal dus gebruik om die erfenis wanneer dit nodig is, onthou,"'n ontwikkelaar is'n persoon". Ons sal voortgaan om die mixins wanneer'n mens is in die situasie,"'n ontwikkelaar is wat optree as'n werknemer". Dit sal waarskynlik wees om die samestelling indien hierdie verhouding blyk te wees iets van'n komplekse, 'n voorwerp wat'n toegewyde klas. Om op te som die inhoud van hierdie artikel, dink van jou klasse so dat hulle die mees modulêre as moontlik, moenie vashou jouself in'n boks van wat jy nie kan uiteindelik gaan uit, onthou om te duidelik baken van die verantwoordelikhede van elke. As jou toetse is moeilik om te implementeer, dit is dikwels die teken van'n argitektoniese kwessie wat moet jy'n vlooi in die oor. Vandag, sal ons praat oor die sagteware-argitektuur. in'n app te Kyk. Sisi, dit is moontlik.