Patrons de conception/Injection de dépendance

Un livre de Wikilivres.
Patron de conception
Catégorie : Autre
Nom français : Injection de dépendance
Nom anglais : Dependency injection
Couplage dynamique


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.

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.