Un conteneur est un composant logiciel qui gère la création, la configuration et la mise à disposition des objets utilisés par une application.
Il permet de séparer la logique métier de la gestion des dépendances, en assurant que chaque composant reçoit automatiquement les services dont il a besoin — sans les instancier lui-même.
Principe :
« Ne crée pas tes outils — demande-les à celui qui les prépare. »
Le conteneur garantit notamment :
- L’unicité des instances (ex. : une seule connexion à la base de données),
- La résolution automatique des dépendances (injection via constructeur, méthode, etc.),
- La flexibilité (remplacement facile d’un service par un autre, notamment en test).
Contrairement au patron Singleton, le conteneur évite le couplage global et renforce la testabilité et la modularité du code.
Synonymes
- Conteneur d’injection de dépendances
- Service container
- Conteneur de services