Komposition framför arv är en allmänt citerad designprincip — att föredra att bygga objekt genom att kombinera beteenden (komposition) snarare än att ärva från basklasser (arv). Arv har betydande nackdelar som komposition undviker, även om båda har sin plats.
Arv kontra 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
