Composition plutôt qu'héritage est un principe de conception largement cité — favorizant la construction d'objets en combinant des comportements (composition) plutôt que d'hériter de classes de base (héritage). L'héritage a des inconvénients significatifs que la composition évite, bien que les deux aient leur place.
Héritage versus composition
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
