angular核心知识 - [ 依赖注入模式 ]

* 知识点储备

依赖注入 Dependency Injection 简称DI

侧重于描述手段 就是如何来实现控制反转

控制反转 Inversion of Control 简称IOC

侧重于描述目的 即代码的控制权有代码的内部转到外部

DI和IOC两者的关系

依赖注入(DI)和控制反转(IOC)基本是一个意思,因为说起来谁都离不开谁。
简单来说,a依赖b,但a不控制b的创建和销毁,仅使用b,那么b的控制权交给a之外处理,这叫控制反转(IOC),
而a要依赖b,必然要使用b的instanc,那么我们来看看实现依赖注入有哪些方法:
1. 通过a的接口,把b传入;
2. 通过a的构造,把b传入;
3. 通过设置a的属性,把b传入; ——————这些过程叫依赖注入(DI)。


那么什么是IOC Container?随着DI的频繁使用,要实现IOC,会有很多重复代码,甚至随着技术的发展,有更多新的实现方法和方案,那么有人就把这些实现IOC的代码打包成组件或框架,来避免人们重复造轮子。所以实现IOC的组件或者框架,我们可以叫它IOC Container

依赖注入

注入器

constructor(private aaa:Aaa) {...}

提供器

 /*provide 对应的token标记,useClass对应的类.也是要实例化的累*/
 providers: [{provide:Aaa,useClass:Aaa}]

 /*provide和useClass一样时 可以简写:*/
 providers: [Aaa]

 //当然为了解耦 useClass可以修改的; 反正provide的token对应注入器构造函数的Aaa就可以
 providers: [{provide:Aaa,useClass:AnotherAaa}]

//还有也可以工厂模式注入的方法:
 providers: [{provide:Aaa,useFactory:()=>{...}}]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值