Dependency injection (DI) एक pattern हो जहाँ एक object ले बाहिरबाट आ्ने (injected) dependencies प्राप्त गर्छ बरु आफैले सिर्जना गरेको छैन। यसले loose coupling, testability, र flexibility लाई बढावा दिन्छ — एक मौलिक, व्यापक रूपमा प्रयोग गरिने pattern आधुनिक software मा।
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
