Maison >développement back-end >tutoriel php >Trois façons d'injection de dépendances en php

Trois façons d'injection de dépendances en php

angryTom
angryTomoriginal
2019-08-22 13:53:298115parcourir

Trois façons d'injection de dépendances en php

L'inversion de contrôle (IoC) est un principe de conception en programmation orientée objet qui peut être utilisé pour réduire le couplage entre codes informatiques. La méthode la plus courante est appelée injection de dépendances (DI). Ci-dessous nous vous présenterons les trois méthodes d’injection de dépendances en PHP.

Tutoriels recommandés : Tutoriel vidéo PHP

1. Injection de constructeur

Injectez l'objet dépendant dans l'objet dépendant via les paramètres du constructeur, et injectez-le lors de l'initialisation de l'objet.

Avantages :

Une fois l'initialisation de l'objet terminée, l'objet utilisable peut être obtenu.

Inconvénients :

● Lorsqu'il y a de nombreux objets qui doivent être injectés, la liste des paramètres du constructeur sera très longue

● Pas flexible ; assez. S'il existe plusieurs méthodes d'injection et que chaque méthode n'a besoin d'injecter que quelques dépendances spécifiées, alors plusieurs constructeurs surchargés doivent être fournis, ce qui est gênant

2. Injection de méthode setter

Le fournisseur de services IoC injecte l'objet dépendant dans la classe dépendante en appelant la fonction setter fournie par la variable membre.

Avantages :

Flexible. Les objets requis peuvent être injectés de manière sélective.

Inconvénients :

Une fois l'objet dépendant initialisé, il ne peut pas être utilisé car l'objet dépendant n'a pas encore été injecté.

3. Injection d'interface

La classe dépendante doit implémenter l'interface spécifiée, puis implémenter une fonction dans l'interface, qui est utilisée pour injection de dépendance. Le paramètre de cette fonction est l'objet à injecter.

Avantages

En injection d'interface, le nom de l'interface et le nom de la fonction n'ont pas d'importance, du moment que les paramètres de la fonction sont du type d'objet à injecter.

Inconvénients

L'intrusion est trop forte et n'est pas recommandée.

PS : Qu'est-ce qu'une intrusion ?

Si la classe A veut utiliser une fonction fournie par d'autres, si pour utiliser cette fonction, elle doit ajouter du code supplémentaire à sa propre classe, cela est intrusif.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn