Injection de dépendances : Lors de l'exécution du programme, si vous avez besoin de coopérer avec un autre objet (appeler sa méthode, accéder à ses propriétés), vous n'avez pas besoin de créer l'appelé dans le code, mais de vous appuyer sur l'injection du conteneur externe
L'exemple suivant est peut-être plus intéressant
Comprendre l'injection de dépendances :
Une personne (instance Java, appelant) a besoin d'une hache (instance Java, appelé)
Dans la société primitive, il n'y avait presque pas de division sociale du travail ; la personne qui avait besoin d'une hache (l'appelant) ne pouvait que moudre une hache elle-même (l'appelé) ; la situation correspondante est la suivante : l'appelant dans le programme Java crée la hache ; appelé lui-même, utilisant généralement le nouveau mot-clé pour appeler le constructeur afin de créer un appelé
Dans la société industrielle, des usines sont apparues et les haches n'étaient plus fabriquées par des gens ordinaires, mais étaient produites dans des usines. À cette époque, la personne qui avait besoin d'une hache (l'appelant) trouvait l'usine et achetait la hache sans s'en soucier. sur le processus de fabrication de la hache ; Correspondant au modèle de conception d'usine simple, l'appelant n'a qu'à localiser l'usine et n'a pas besoin de gérer la mise en œuvre spécifique de l'appelé
Dans une société « communiste », les gens qui ont besoin d'une hache n'ont même pas besoin de localiser l'usine, et peuvent simplement « s'asseoir et attendre » que la société la leur fournisse ; implémentation de l'appelé, ignorer l'usine et attendre l'injection de dépendance Spring
En bref, l'injection de dépendances signifie que ce dont vous avez besoin n'est pas créé par vous, mais vous est fourni par un tiers, ou le conteneur. Une telle conception est conforme à l’orthogonalité, ce qu’on appelle le couplage lâche.
Personnellement compris, l'injection de dépendances signifie que l'appelant peut obtenir le contrôle d'un composant simplement en déclarant un composant, et que la gestion des dépendances, la recherche et le chargement du composant sont effectués en externe.
Ce travail est effectué par $injector dans AngularJS.
Par exemple, j'ai injecté $http dans un service et je l'ai appelé avec hehe :
L'injection de dépendances signifie que vous n'avez pas à vous soucier du cycle de vie de l'objet, quand il est créé et quand il est détruit. Il vous suffit de l'utiliser directement. Le cycle de vie de l'objet est géré par. le framework qui fournit l’injection de dépendances.
La compréhension théorique semble toujours un peu ésotérique. Je vous recommande de consulter certains frameworks open source pour l'injection de dépendances, tels que RoboGuice. La vraie connaissance vient de la pratique .
Désolé, je me suis trompé de porte, je n'ai pas lu la catégorie RoboGuice est un framework pour Android, mais le principe est le même
L'injection de dépendances (DI) est également appelée Inversion de Contrôle (IoC), c'est-à-dire que la relation entre classes et classes, méthodes et méthodes est effectuée via un tiers (comme un fichier de configuration "Injection"). classes ou méthodes de classe pour résoudre la relation d’appel entre elles. Les applications traditionnelles créent généralement activement d'autres objets dont dépend la classe dans le code d'exécution au sein de la classe, ce qui entraîne un couplage étroit entre les classes, rendant la classe difficile à tester et à isoler, et finalement rendant l'expansion et la maintenance du système extrêmement difficiles. L'injection de dépendances est utilisée pour résoudre les dépendances, la configuration et la gestion du cycle de vie entre les composants. En transférant le contrôle des objets, elle peut résoudre le problème de couplage entre les classes. Plus important encore, elle rend le système d'application plus structuré. devenu très flexible, ce qui reflète bien l'une des règles de conception orientée objet - le principe de conception de dépendance, le célèbre principe hollywoodien : "Ne nous appelez pas, nous vous appellerons. (Ne nous appelez pas, nous vous appellerons toi. toi).
En fait, cela signifie que les attributs caractéristiques de l'objet actuel sont déterminés par l'objet injecté de l'extérieur.
Par exemple, si votre famille ouvre une usine de chaussures, il existe une méthode de production de chaussures appelée make.
function shoes() {
this.make = function() {
....
}
}
En raison de la demande du marché, certaines grandes entreprises de chaussures de sport exigent que votre usine les produise. Elles vous fourniront un grand nombre de matières premières. Votre usine peut obtenir les matières premières et les produire, puis les OEM.
De cette façon, si Nike a besoin de vous pour effectuer un travail OEM et vous donne les objets matériels de Nike, vous pouvez produire les chaussures de sport de Nike, Adidas vous donne ses propres matériaux et vous pouvez produire ses chaussures.
C'est-à-dire que le fait que les chaussures produites par votre usine de chaussures proviennent de A ou de N dépend du fait que A ou N fournisse vos matériaux.
En programmation orientée objet, le problème auquel nous sommes souvent confrontés est le découplage. Plus le couplage du programme est faible, plus la lisibilité et la maintenabilité du programme sont élevées. L'inversion de contrôle (IoC) est un principe de conception de programmation orientée objet couramment utilisé. Grâce à ce principe, nous pouvons réduire le couplage. L’injection de dépendances est l’implémentation la plus couramment utilisée de l’inversion de contrôle.
Visite détaillée pour parler injection de dépendances
Une compréhension personnelle très simple, l'injection de dépendances n'est en fait pas difficile, c'est une chose très naturelle, la vraie vie est en fait plus difficile que la programmation : Injection de dépendances : Vous êtes une personne, vous devez Lorsque vous partez à la chasse, vous avez besoin d'une arme à feu. À l'heure actuelle, vous avez deux options. La première option est de la fabriquer vous-même. Ce n'est évidemment pas conseillé. La deuxième option est de l'acheter en magasin. C'est l'injection de dépendance Parce qu'elle vous est injectée de l'extérieur En achetant, vous pouvez résoudre les problèmes que vous avez. ont créé. Injectez, supprimez les dépendances . Quelle chose simple. Principe d'inversion du contrôle : Fiez-vous à l'abstraction, pas à des choses concrètes. Lorsque vous achetez une arme à feu, vous devez avoir le concept abstrait de l'arme à l'esprit. Propriétaire d'un magasin d'armes à feu, l'image abstraite de cette arme dans votre esprit suffit. Et vous êtes créé par Dieu. Lorsque Dieu veut vous tester en tant que chasseur, il serait plus difficile pour Dieu de créer une arme à feu pour vous, mais s'il y a un manuel d'instructions sur l'arme dans votre sac, ce sera plus facile, Dieu, moi. Je t'aiderai à récupérer une arme dans une minute. Pour le dire plus grossièrement, ne vous fiez pas au pistolet spécifique, mais comptez sur le manuel du pistolet C'est le principe d'inversion du contrôle. Évidemment, c'est ce qu'on fait dans la vraie vie. Conteneur : C'est l'équivalent d'une usine super puissante dans la vraie vie. Dieu (programmeur) est responsable de sa mise à niveau constante, il peut généralement vous aider avec tout ce que vous lui dites et le produire. donnez-le vous gratuitement. L’usine fait tout le sale boulot à votre place et vous êtes uniquement responsable de profiter de la vie. C’est dans cette usine que réside la difficulté de mettre en œuvre l’injection de dépendances. Une compréhension plus approfondie,
L'injection de dépendance équivaut à une société communiste.
Injection de dépendances : Lors de l'exécution du programme, si vous avez besoin de coopérer avec un autre objet (appeler sa méthode, accéder à ses propriétés), vous n'avez pas besoin de créer l'appelé dans le code, mais de vous appuyer sur l'injection du conteneur externe
L'exemple suivant est peut-être plus intéressant
Comprendre l'injection de dépendances :
Une personne (instance Java, appelant) a besoin d'une hache (instance Java, appelé)
Dans la société primitive, il n'y avait presque pas de division sociale du travail ; la personne qui avait besoin d'une hache (l'appelant) ne pouvait que moudre une hache elle-même (l'appelé) ; la situation correspondante est la suivante : l'appelant dans le programme Java crée la hache ; appelé lui-même, utilisant généralement le nouveau mot-clé pour appeler le constructeur afin de créer un appelé
Dans la société industrielle, des usines sont apparues et les haches n'étaient plus fabriquées par des gens ordinaires, mais étaient produites dans des usines. À cette époque, la personne qui avait besoin d'une hache (l'appelant) trouvait l'usine et achetait la hache sans s'en soucier. sur le processus de fabrication de la hache ; Correspondant au modèle de conception d'usine simple, l'appelant n'a qu'à localiser l'usine et n'a pas besoin de gérer la mise en œuvre spécifique de l'appelé
Dans une société « communiste », les gens qui ont besoin d'une hache n'ont même pas besoin de localiser l'usine, et peuvent simplement « s'asseoir et attendre » que la société la leur fournisse ; implémentation de l'appelé, ignorer l'usine et attendre l'injection de dépendance Spring
En bref, l'injection de dépendances signifie que ce dont vous avez besoin n'est pas créé par vous, mais vous est fourni par un tiers, ou le conteneur. Une telle conception est conforme à l’orthogonalité, ce qu’on appelle le couplage lâche.
Personnellement compris, l'injection de dépendances signifie que l'appelant peut obtenir le contrôle d'un composant simplement en déclarant un composant, et que la gestion des dépendances, la recherche et le chargement du composant sont effectués en externe.
Ce travail est effectué par
$injector
dans AngularJS.Par exemple, j'ai injecté
$http
dans un service et je l'ai appelé avechehe
:L'injection de dépendances signifie que vous n'avez pas à vous soucier du cycle de vie de l'objet, quand il est créé et quand il est détruit. Il vous suffit de l'utiliser directement. Le cycle de vie de l'objet est géré par. le framework qui fournit l’injection de dépendances.
Permettez-moi d'ajouter un point : l'injection de dépendances et l'inversion de contrôle sont en fait le même concept.
@Wang_Bourne
http://www.cnblogs.com/kinglongdai/p/3269049.html
MOOC : http://www.imooc.com/video/4907
La compréhension théorique semble toujours un peu ésotérique. Je vous recommande de consulter certains frameworks open source pour l'injection de dépendances, tels que RoboGuice. La vraie connaissance vient de la pratique
.. Désolé, je me suis trompé de porte, je n'ai pas lu la catégorie RoboGuice est un framework pour Android, mais le principe est le même
L'injection de dépendances (DI) est également appelée Inversion de Contrôle (IoC), c'est-à-dire que la relation entre classes et classes, méthodes et méthodes est effectuée via un tiers (comme un fichier de configuration "Injection"). classes ou méthodes de classe pour résoudre la relation d’appel entre elles. Les applications traditionnelles créent généralement activement d'autres objets dont dépend la classe dans le code d'exécution au sein de la classe, ce qui entraîne un couplage étroit entre les classes, rendant la classe difficile à tester et à isoler, et finalement rendant l'expansion et la maintenance du système extrêmement difficiles. L'injection de dépendances est utilisée pour résoudre les dépendances, la configuration et la gestion du cycle de vie entre les composants. En transférant le contrôle des objets, elle peut résoudre le problème de couplage entre les classes. Plus important encore, elle rend le système d'application plus structuré. devenu très flexible, ce qui reflète bien l'une des règles de conception orientée objet - le principe de conception de dépendance, le célèbre principe hollywoodien : "Ne nous appelez pas, nous vous appellerons. (Ne nous appelez pas, nous vous appellerons toi. toi).
angular.js contient beaucoup de ce genre de réflexion.
include var net = require('net');
Ils sont tous violets.
Injection de dépendances
En fait, cela signifie que les attributs caractéristiques de l'objet actuel sont déterminés par l'objet injecté de l'extérieur.
Par exemple, si votre famille ouvre une usine de chaussures, il existe une méthode de production de chaussures appelée make.
En raison de la demande du marché, certaines grandes entreprises de chaussures de sport exigent que votre usine les produise. Elles vous fourniront un grand nombre de matières premières. Votre usine peut obtenir les matières premières et les produire, puis les OEM.
De cette façon, si Nike a besoin de vous pour effectuer un travail OEM et vous donne les objets matériels de Nike, vous pouvez produire les chaussures de sport de Nike, Adidas vous donne ses propres matériaux et vous pouvez produire ses chaussures.
C'est-à-dire que le fait que les chaussures produites par votre usine de chaussures proviennent de A ou de N dépend du fait que A ou N fournisse vos matériaux.
En programmation orientée objet, le problème auquel nous sommes souvent confrontés est le découplage. Plus le couplage du programme est faible, plus la lisibilité et la maintenabilité du programme sont élevées. L'inversion de contrôle (IoC) est un principe de conception de programmation orientée objet couramment utilisé. Grâce à ce principe, nous pouvons réduire le couplage. L’injection de dépendances est l’implémentation la plus couramment utilisée de l’inversion de contrôle.
Visite détaillée pour parler injection de dépendances
Une compréhension personnelle très simple, l'injection de dépendances n'est en fait pas difficile, c'est une chose très naturelle, la vraie vie est en fait plus difficile que la programmation :
L'injection de dépendance équivaut à une société communiste.Injection de dépendances : Vous êtes une personne, vous devez Lorsque vous partez à la chasse, vous avez besoin d'une arme à feu. À l'heure actuelle, vous avez deux options. La première option est de la fabriquer vous-même. Ce n'est évidemment pas conseillé. La deuxième option est de l'acheter en magasin. C'est l'injection de dépendance Parce qu'elle vous est injectée de l'extérieur En achetant, vous pouvez résoudre les problèmes que vous avez. ont créé. Injectez, supprimez les dépendances . Quelle chose simple. Principe d'inversion du contrôle
: Fiez-vous à l'abstraction, pas à des choses concrètes. Lorsque vous achetez une arme à feu, vous devez avoir le concept abstrait de l'arme à l'esprit. Propriétaire d'un magasin d'armes à feu, l'image abstraite de cette arme dans votre esprit suffit. Et vous êtes créé par Dieu. Lorsque Dieu veut vous tester en tant que chasseur, il serait plus difficile pour Dieu de créer une arme à feu pour vous, mais s'il y a un manuel d'instructions sur l'arme dans votre sac, ce sera plus facile, Dieu, moi. Je t'aiderai à récupérer une arme dans une minute. Pour le dire plus grossièrement, ne vous fiez pas au pistolet spécifique, mais comptez sur le manuel du pistolet C'est le principe d'inversion du contrôle. Évidemment, c'est ce qu'on fait dans la vraie vie. Conteneur :
C'est l'équivalent d'une usine super puissante dans la vraie vie. Dieu (programmeur) est responsable de sa mise à niveau constante, il peut généralement vous aider avec tout ce que vous lui dites et le produire. donnez-le vous gratuitement. L’usine fait tout le sale boulot à votre place et vous êtes uniquement responsable de profiter de la vie. C’est dans cette usine que réside la difficulté de mettre en œuvre l’injection de dépendances. Une compréhension plus approfondie,