Introduction to Composition
Swipe um das Menü anzuzeigen
Komposition stellt eine Has-a-Beziehung dar, bei der eine Klasse eine Instanz einer anderen Klasse enthält, anstatt von ihr zu erben. Zum Beispiel: Ein Auto hat einen Motor. Dies unterscheidet sich von der Vererbung, die eine Is-a-Beziehung modelliert, wie zum Beispiel: Ein Lkw ist ein Fahrzeug.
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 erbt nicht von Engine. Stattdessen enthält es ein Engine-Objekt und verwendet dieses, um seine Aufgaben auszuführen. Dies zeigt eine Has-a-Beziehung, nicht Is-a, wodurch das Design flexibler und später leichter anpassbar wird.
Komposition sollte verwendet werden, wenn flexible Bestandteile, klare Abgrenzungen und Austauschbarkeit des Verhaltens zur Laufzeit erforderlich sind. Vererbung bevorzugen, wenn eine echte Ist-ein-Hierarchie offensichtlich und stabil ist.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen