Le nom Inversion de contrôle par injection de dépendance semble déroutant Après avoir lu cet article, vous saurez de quoi il s'agit.
En fait, ces deux-là font référence Une chose n'est qu'une idée de programmation, ne pensez pas que ce soit si difficile à comprendre et si noble.
Alors, qu'est-ce qu'un conteneur ? Pour le comprendre directement, un conteneur est une chose qui contient des choses. En programmation, nos variables communes et propriétés d'objet sont toutes des conteneurs. Ce qui peut contenir un conteneur dépend entièrement de la définition du conteneur.
Cependant, nous discutons maintenant d'un autre type de conteneur. Il ne stocke ni texte ni valeurs, mais des objets, des classes et des interfaces. Grâce à ce type de conteneur, de nombreuses fonctions avancées peuvent être réalisées. celui utilisé est le découplage et l’injection de dépendances.
Alors pourquoi y a-t-il deux concepts, pourquoi parle-t-on d'inversion de contrôle et d'injection de dépendances ! Comme mentionné ci-dessus, ils font en réalité référence à la même chose, mais ils sont décrits sous des angles différents.
Tout comme vous êtes le fils de votre père, vous êtes toujours le petit-fils de votre grand-père. Fils et petit-fils font référence à la même personne. Il s’agit simplement d’examiner le problème sous un angle différent.
L'inversion de contrôle
consiste à examiner le problème du point de vue du conteneur. Le conteneur contrôle l'application, et le conteneur injecte à l'envers les informations externes que le conteneur contient. besoins de l'application dans la ressource de l'application.
Injection de dépendances
Regardez le problème du point de vue de l'application. L'application s'appuie sur le conteneur pour créer et injecter les ressources externes dont elle a besoin. La
Fonction
est principalement utilisée pour réduire le couplage entre les codes.
Séparez efficacement les objets et les ressources externes nécessaires à l'application.
Les deux images suivantes peuvent illustrer clairement le problème
Donnez-vous un cas simple
Définissez deux classes comme Person et Car, instanciez-les dans Person et appelez la méthode de paiement dans Car.
Ensuite, appelez-le dans le contrôleur, et le résultat imprimé doit être le 123 renvoyé par Car, donc celui-ci ne sera pas imprimé.
À ce stade, nous modifions le code et passons la classe Car directement à la classe Person et l'utilisons directement dans la classe Person L'objet passé appelle la méthode correspondante.
Il ne s'agit que d'un simple processus d'implémentation. Afin d'ouvrir la voie à la lecture du code du conteneur du framework, l'injection du conteneur dans le framework sera expliquée en détail plus tard.
La persévérance dans l'apprentissage, la persévérance dans les blogs et la persévérance dans le partage sont les convictions auxquelles Kaka a toujours adhéré depuis ses débuts. J'espère que les articles de Kaka sur le grand Internet pourront vous apporter un peu d'aide. Je m'appelle Kaka, à la prochaine fois.
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!