Compoziția în locul moștenirii este un principiu de design citat pe scară largă — favorizând construirea obiectelor prin combinarea comportamentelor (compoziție) mai degrabă decât prin moștenire din clase de bază (moștenire). Moștenirea are dezavantaje semnificative pe care compoziția le evită, deși ambele au locul lor.
Moștenire vs compoziție
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
