Komposition gegenüber Vererbung ist ein weit verbreitetes Designprinzip — es bevorzugt das Erstellen von Objekten durch Kombinieren von Verhaltensweisen (Komposition) statt durch Vererbung von Basisklassen (Vererbung). Vererbung hat erhebliche Nachteile, die Komposition vermeidet, obwohl beide ihren Platz haben.
Vererbung vs. Komposition
INHERITANCE → a class EXTENDS another, inheriting its behavior ("IS-A" relationship):
class Dog extends Animal
COMPOSITION → a class is BUILT FROM other objects/behaviors ("HAS-A" / uses):
class Car { constructor() { this.engine = new Engine(); } } // composes behaviors
→ composition: combine smaller pieces; inheritance: derive from a parent
