L'injection de dépendances (DI) est un pattern où un objet reçoit ses dépendances de l'extérieur (injectées) plutôt que de les créer lui-même. Elle favorise le couplage faible, la testabilité et la flexibilité — un pattern fondamental et largement utilisé dans les logiciels modernes.
Qu'est-ce que l'injection de dépendances
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
