Dependency injection (DI) ایک نمونہ ہے جس میں ایک object اپنے dependencies کو باہر سے حاصل کرتا ہے (injected) بجائے اس کے کہ انہیں خود بنائے۔ یہ loose coupling، testability، اور flexibility کو فروغ دیتا ہے — جو کہ جدید سافٹ ویئر میں ایک بنیادی، بہت زیادہ استعمال شدہ نمونہ ہے۔
Dependency injection کیا ہے
WITHOUT DI → a class CREATES its own dependencies (tightly coupled):
class OrderService { constructor() { this.db = new Database(); } } // hardcoded dependency
WITH DI → dependencies are PROVIDED (injected) from outside:
class OrderService { constructor(db) { this.db = db; } } // db is injected
→ the object doesn't create/control its dependencies → they're given to it
