Komposition suosiminen periytymisen sijaan on laajalti mainittu suunnitteluperiaate — jonka tarkoituksena on suosia objektien rakentamista yhdistämällä käyttäytymisiä (komposition) sen sijaan, että periytyisivät perusluokista (periytyminen). Periytymisellä on merkittäviä haittoja, joita komposition avulla voidaan välttää, vaikka molemmilla on paikkansa.
Periytyminen 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
