• 技术文章 >web前端 >js教程

    详解Angular中的依赖注入模式

    青灯夜游青灯夜游2021-04-22 10:08:54转载905
    本篇文章给大家详细介绍一下Angular中的依赖注入模式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    Angular 依赖注入模式

    依赖注入: Dependency Injection 简称 DI

    依赖注入模式要解决的问题

    开发中, 会经常遇见对象的实例化, 当多个对象之间存在依赖时, 手工实例化会特别麻烦。

    如果一个对象A要依赖对象 B, 那么对象 A 不需要明确地去实例化B对象, B 会由外部机制注入进来, 对象 A 只需要声明一个B对象就行。 这就是依赖注入要解决的问题。

    与依赖注入经常同时出现的另一个概念叫做控制反转

    控制反转: Inversion of Control 简称 IOC, 是指将依赖的控制权从代码的内部反转到代码的外部。

    依赖注入控制反转是一体两面, 表达的是一个思想。 依赖注入侧重于描述手段, 即如何实现控制反转, 控制反转侧重于描述目的, 即目的是将依赖的控制权从代码的内部反转到代码的外部。

    相关教程推荐:《angular教程

    依赖注入模式的好处

    Angular 如何实现依赖注入

    注入器

    每个组件都有一个注入器实例, 负责注入组件需要的对象。 注入器是 Angular 提供的一个服务类。 一般情况下不用直接调用注入器的方法, 注入器会自动通过组件的 构造函数(constructor) 将组件需要的对象注入进组件。 提供器会告诉注入器如何创建实例。

    提供器

    为了让注入器知道注入的对象如何实例化,需要指定提供器,一般情况下,我们会通过组件或模块的 providers 属性声明需要提供的对象。

    一般声明方式

    providers:[{provide:AService, useClass: AServivce}] <=> providers:[AService]
    provide 属性:指定了提供器的令牌(token)
    useClass 属性:表示实例化方式是 new

    工厂方法声明方式

    使用 useFactory 方式实例化对象
    providers:[
      {
        provide:AService, 
        useFactory: (bService: BService) => {
          ....
        },
        deps:[BService] //deps声明工厂方法所依赖的服务。
        ]
    工厂方法创建的对象是单例对象

    在构造函数(constructor)中声明的对象,会根据类名去匹配提供器(providers)中的令牌(token),然后根据 useClass 属性的值去实例化指定的对象。

    提供器注入规则

    更多编程相关知识,请访问:编程视频!!

    以上就是详解Angular中的依赖注入模式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    上一篇:详解主动终止Node.js进程的几种方法 下一篇:详解JS中值传递和引用传递的区别
    大前端线上培训班

    相关文章推荐

    • 深入了解Angular中的变更检测• 深入浅析Angular中Directive的用法• 20个优秀的Angular开源项目,你了解几个呢?• 详解Angular中的Route路由• 详解Angular中的NgModule(模块)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网