Wat is samenstelling boven erfenis?

Samenstelling over overerving is een programmeermethode die wordt gebruikt in objectgeoriënteerde programmeertalen om meer dynamische en veranderlijke relaties tussen objecten in een toepassing aan te gaan. Het basisformaat voor samenstelling boven overerving is de opname van een exemplaar van een object in een ander object. Dit verschilt duidelijk van de objectgeoriënteerde methode van overerving, maar kan in veel modellen hetzelfde doel dienen. De voordelen van samenstelling ten opzichte van overerving omvatten goed gedefinieerde randen tussen de samengestelde objecten en de wrapper-objecten, de mogelijkheid om de implementatie van een object te wijzigen zonder een volledige erfenishiërarchie te beïnvloeden en een minder beperkend kader voor het eerste programma-ontwerp. Sommige complicaties kunnen echter problemen omvatten in serialisatie en overdreven complexe structuren in grote, gevestigde programma's.

In object OrientED -programmering, een van de eigenschappen die belangrijk is om tijdens het ontwerp vast te stellen, is hoe de verschillende objecten zich tot elkaar verhouden. Overerving is een centraal mechanisme in objectgeoriënteerde programmering en stelt één object in staat om alle gegevens en methoden van zijn ouder te erven, die het vervolgens kan toevoegen, wijzigen of uitbreiden met zijn eigen implementatie. Een voorbeeld van ontwerp op basis van overerving kan zijn met een programma met één hoofdklasse die een auto en modelleert enkele generieke attributen van alle auto's. De klasse voor elk individueel auto wordt vervolgens gemaakt als een afstammeling van de hoofdklasse, maar definieert specifieke informatie, zoals de motorkapitaal, brandstofcapaciteit of andere informatie die specifiek is voor dat specifieke auto.

Samenstelling wordt uitgedrukt door objectinstanties binnen andere objecten op te nemen. Als er een hoofdklasse is die een generieke auto definieert, dan kan de hoofdklasse in plaats van subklassen te maken voor specifieke autoferken, in plaats daarvan instanties van andere objecten die definiërene de auto meer specifiek. Dit kan betekenen dat de hoofdauto -klasse een object voor het motortype kan bevatten en één voor de brandstofcapaciteit, die zou worden ingesteld wanneer de klasse wordt gebruikt om een ​​exemplaar van een specifiek merkauto te maken.

Met samenstelling over overerving, zijn de objecten die in de hoofdklasse zijn opgenomen niet direct gerelateerd aan de hoofdklasse, waardoor ontwikkelaars de vrijheid krijgen om te veranderen hoe individuele objecten werken. Een probleem dat samenstelling boven erfenis kan helpen om te voorkomen, is een situatie waarin een erfenisboom buitensporig diep kan zijn, wat betekent dat alle wijzigingen in een klasse in de boom veranderingen door de lengte van de boom kunnen vereisen. Niet alle objectgeoriënteerde talen hebben ondersteuning voor meerdere erfenis, en samenstelling boven overerving is een methode die kan worden gebruikt om deze beperking te omzeilen.

ANDERE TALEN