De samenstelling van de redding van de nalatenschap

Vandaag zullen we praten over software architectuur

Het concept van overerving is een concept dat men moet beheersen bij het gebruik van een taal-objectAls u wilt organiseren van uw code rond objecten, er is een grote kans dat u zal worden geconfronteerd met de noodzaak tot het gebruik erfenis. Hoewel de legacy brengt veel onmiskenbare voordelen op, dit is niet het antwoord op alle problemen. Als je valt in het willekeurig gebruik van overerving is er een grote kans dat u mordiez vingers een paar maanden later, wanneer u het nodig om te evolueren van de functionele mogelijkheden van uw aanvraag. Natuurlijk is het verleidelijk om te zeggen,"Als ik erft van Foo, dan heb ik ook alle van de functies zonder enige inspanning.". Maar op hetzelfde moment, je bindt zeer sterk aan de beide klassen en als ze komen elkaar in de toekomst zult u niet in staat om dat je gewoon zeggen:"Ok, ze delen dezelfde als een paar functies". U zult dan begin je je te realiseren dat het nu moeilijk is om te testen elk van deze klassen, en dat is het verre van evident om het splitsen. De problemen beginnen. De zorg voor de ontwikkelaars niet ervaren is dat men niet beseffen dat dit feit dat in het midden van een project of wanneer de cliënt wil maken van een verandering in de werking van een bestaand element.

U kunt me geloven op het woord, het eindigt altijd door te krijgen.

Het is noodzakelijk om te kunnen detecteren de verschillende soorten relaties die kunnen bestaan tussen de klassen. Een klasse kan worden met elkaar verbonden door drie soorten relaties: De samenstelling zal altijd meer flexibel dan een mixins en zal niet direct worden gerelateerd aan de klasse die de hosts in tegenstelling tot de erfenis. Daarom was het nu de voertuigen hebben een snelheid, de auto kan rollen en de helikopters kunnen vliegen. Laten we nu zeggen dat men de wens heeft om een klasse te maken voor de vliegtuigen technisch kan rollen en vliegen. Ons vliegtuig is halverwege tussen de auto en de helikopter. Natuurlijk, we konden gebruik maken van mixins, maar dit is niet meer of minder dan een vorm van meervoudige overerving. Het zou veel beter zijn dan onze huidige oplossing en zou ons probleem op te lossen.

De andere oplossing is gebruik te maken van de compositie, die het mogelijk maakt u te isoleren gedrag in gespecialiseerde lessen.

Vervolgens zullen We gebruik maken van instanties van deze klassen in andere klassen. Daarom laat om te volgen, schoon, bondig, zonder methoden die zijn overbodig, en zeer eenvoudig te toetsen. Gebruik de samenstelling, het is om toegang te hebben tot de volledige kracht van een speciale klas voor het bewerken van een object. Dus we kunnen het op zijn plaats: ik geef toe dat dit de oplossing is meer uitgebreid dan mixins, maar het is ook veel flexibeler en krachtiger, en zal in de praktijk waarschijnlijk het eenvoudigst te testen. Voor de demonstratie, ik geïnitialiseerd objecten Wielen en Vleugels op de vlieg, maar in de praktijk heeft het de neiging om dit werk te doen van de initialisatie in de initialize methode die het mogelijk zou zijn persistente objecten en om te voorkomen dat de problemen van de concurrentie. In de praktijk is er geen reden voor het volgen van een nauwkeurige methode, waarom gebruiken de samenstelling, mixins, of erfenis in een exclusieve manier, wanneer u kunt de mix van de drie. Hij moet weten hoe zich aan te passen en het gebruik van de oplossing die zal worden meer flexibel. We zullen daarom gebruik maken van de erfenis wanneer het nodig is, onthoud dat"een ontwikkelaar is een persoon". We gaan door naar de mixins wanneer men in de situatie,"een ontwikkelaar optreedt als een werknemer". Het zal waarschijnlijk aan de samenstelling als deze relatie blijkt te zijn iets van een complex, een object waarvoor een speciale klasse.

Voor het samenvatten van de inhoud van dit artikel, denk dat van je lessen, zodat ze de meest modulair als mogelijk te maken, niet vasthouden jezelf in een vak waarvan je je misschien niet uiteindelijk uit te gaan, vergeet niet om duidelijk af te bakenen van de verantwoordelijkheden van elk.

Als je tests zijn moeilijk te implementeren, het is vaak het teken van een bouwkundig probleem, dat moet je een vlo in het oor. in een app Bekijken. Sisi, het is mogelijk. Niet alleen blijven.