کمپوزیشن انہیریٹنس پر ترجیح ایک بہت زیادہ حوالہ دیا جانے والا ڈیزائن اصول ہے — آبجیکٹس کو رویے کو ملا کر (کمپوزیشن) بنانے کی ترجیح دی جاتی ہے بجائے بیس کلاسز سے وراثت لینے کے (انہیریٹنس)۔ انہیریٹنس میں اہم خامیاں ہیں جو کمپوزیشن سے بچا جا سکتا ہے، اگرچہ دونوں کی اپنی جگہ ہے۔
انہیریٹنس بمقابلہ کمپوزیشن
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
