Komposition fremfor arv er et meget citeret designprincip — det handler om at bygge objekter ved at kombinere adfærd (komposition) i stedet for at arve fra basisklasser (arv). Arv har betydelige ulemper, som komposition undgår, selvom begge har deres plads.
Arv 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
