Compositie boven overerving is een breed aangehaald ontwerpprincipe — het gaat erom objecten te bouwen door gedragingen te combineren (compositie) in plaats van over te erven van basisklassen (overerving). Overerving heeft aanzienlijke nadelen die compositie vermijdt, hoewel beide hun plaats hebben.
Overerving versus compositie
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
