Patrons de conception/Injection de dépendance
L'injection de dépendance consiste à éviter une dépendance directe entre deux classes, et définissant dynamiquement la dépendance plutôt que statiquement.
Patron de conception | |
---|---|
Catégorie : Autre | |
Nom français : | Injection de dépendance |
Nom anglais : | Dependency injection |
Couplage dynamique |
Une classe A dépend d'une autre classe B quand la classe A possède un attribut de type B, ou possède une méthode utilisant la classe B (type de paramètre, valeur de retour, variable locale, appel de méthode de la classe B).
Pour mettre en œuvre l'injection de dépendance :
- Créer une interface I déclarant les méthodes de la classe B utilisées par la classe A ;
- Déclarer la classe B comme implémentation de cette interface I ;
- Remplacer toute référence à la classe B par des références à l'interface I ;
- Si la classe A instancie des instances de B à son initialisation, alors remplacer l'instanciation par un passage d'une instance de l'interface I au(x) constructeur(s) de A ;
- Si besoin, ajouter une méthode pour spécifier l'instance de l'interface I à utiliser.