Accueil🇫🇷Chercher

Injection de dépendances

L'injection de dépendances (dependency injection en anglais) est un mécanisme qui permet d'implémenter le principe de l'inversion de contrôle.

Il consiste à créer dynamiquement (injecter) les dépendances entre les différents objets en s'appuyant sur une description (fichier de configuration ou métadonnées) ou de manière programmatique. Ainsi les dépendances entre composants logiciels ne sont plus exprimées dans le code de manière statique mais déterminées dynamiquement à l'exécution.

Exemple

En programmation objet, les objets de type A dépendent d'un objet de type B si au moins une des conditions suivantes est vérifiée :

  • A possède un attribut de type B (dĂ©pendance par composition) ;
  • A est de type B (dĂ©pendance par hĂ©ritage) ;
  • A dĂ©pend d'un autre objet de type C qui dĂ©pend d'un objet de type B (dĂ©pendance par transitivitĂ©) ;
  • une mĂ©thode de A appelle une mĂ©thode de B.

Si A dépend de B, cela implique que pour créer A, on a besoin de B ce qui, en pratique, n'est pas toujours le cas.

Pour supprimer la dépendance, un moyen possible consiste à

  • crĂ©er une interface I qui contiendra toutes les mĂ©thodes que A peut appeler sur B,
  • indiquer que B implĂ©mente l'interface I,
  • remplacer toutes les rĂ©fĂ©rences au type B par des rĂ©fĂ©rences Ă  l'interface I dans A.

Un problème qui se pose est de disposer dans A d'un objet implémentant I alors que l'on ne sait pas comment l'instancier. La solution consiste à créer, par exemple, un objet b de type B et de l'injecter dans un objet de type A. L'injection proprement dite peut se faire :

  • Ă  l'instanciation : on passe l'objet b Ă  l'instanciation de A
  • par modificateur : on passe l'objet b Ă  une mĂ©thode de A qui va par exemple modifier un attribut (setter)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.