Maison > Article > interface Web > Explication détaillée du modèle d'injection de dépendances dans Angular
Cet article vous donnera une introduction détaillée au mode d'injection de dépendances dans Angular. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Injection de dépendance : Injection de dépendance, appelée DI
En développement, vous rencontrerez souvent l'instanciation d'objets Lorsqu'il y a des dépendances entre plusieurs objets, l'instanciation manuelle sera particulièrement gênante. .
Si un objet A dépend de l'objet B, alors l'objet A n'a pas besoin d'instancier explicitement l'objet B sera injecté par un mécanisme externe. C’est le problème que résout l’injection de dépendances.
Un autre concept qui apparaît souvent avec l'injection de dépendances est appelé Inversion de contrôle.
Inversion de contrôle : L'inversion de contrôle, appelée IOC, fait référence à l'inversion du contrôle dépendant de l'intérieur du code vers l'extérieur du code. L'
Injection de dépendance et l'Inversion de contrôle sont les deux faces d'une même médaille, exprimant la même idée. Injection de dépendance se concentre sur la description des moyens, c'est-à-dire comment mettre en œuvre l'inversion du contrôle. Inversion du contrôle se concentre sur la description du but, c'est-à-dire que le but est d'inverser le contrôle de. dépendances de l’intérieur du code vers le code externe.
Recommandations de tutoriel associées : "Tutoriel angulaire"
Chaque composant possède une instance d'injecteur, qui est chargée d'injecter les objets requis par le composant. L'injecteur est une classe de service fournie par Angular. Dans des circonstances normales, il n'est pas nécessaire d'appeler directement la méthode d'injection. L'injecteur injectera automatiquement les objets requis par le composant dans le composant via le constructeur (constructeur) du composant. Le fournisseur indique à l'injecteur comment créer l'instance.
Pour que l'injecteur sache comment l'objet injecté est instancié, un fournisseur doit être spécifié. Généralement, nous transmettrons l'attribut fournisseurs du. composant ou module Déclarez les objets qui doivent être fournis.
providers:[{provide:AService, useClass: AServivce}] <=> providers:[AService] provide 属性:指定了提供器的令牌(token) useClass 属性:表示实例化方式是 new
使用 useFactory 方式实例化对象 providers:[ { provide:AService, useFactory: (bService: BService) => { .... }, deps:[BService] //deps声明工厂方法所依赖的服务。 ] 工厂方法创建的对象是单例对象
Objet déclaré dans le constructeur, Le jeton dans les fournisseurs sera mis en correspondance en fonction du nom de la classe, puis l'objet spécifié sera instancié en fonction de la valeur de l'attribut useClass.
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !
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!