Komposisi daripada pewarisan adalah prinsip desain yang banyak dikutip — lebih memilih membangun objek dengan menggabungkan perilaku (komposisi) daripada mewarisi dari kelas dasar (pewarisan). Pewarisan memiliki kelemahan signifikan yang dihindari oleh komposisi, meskipun keduanya memiliki tempat mereka.
Pewarisan vs komposisi
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
