Introductie tot Compositie
Veeg om het menu te tonen
Compositie vertegenwoordigt een heeft-een-relatie, waarbij een klasse een instantie van een andere klasse bevat in plaats van ervan te erven. Bijvoorbeeld, een Auto heeft een Motor. Dit verschilt van overerving, dat een is-een-relatie modelleert, zoals een Vrachtwagen is een Voertuig.
1234567891011121314151617class Engine: def start(self): return "Engine started" class Car: def __init__(self, brand, engine): self.brand = brand self.engine = engine # Car HAS an Engine def drive(self): return f"{self.brand}: {self.engine.start()}" engine = Engine() car = Car("Toyota", engine) print(car.drive())
Car erft niet van Engine. In plaats daarvan bevat het een Engine-object en gebruikt het dit om zijn taken uit te voeren. Dit toont een heeft-een relatie, geen is-een, waardoor het ontwerp flexibeler en later eenvoudiger aan te passen is.
Samenstelling gebruiken wanneer flexibele onderdelen, duidelijke grenzen en runtime-vervanging van gedrag nodig zijn. Erfelijkheid verkiezen wanneer een echte is-a hiërarchie duidelijk en stabiel is.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.