IOC(控制反转)和DI(依赖注入)

IOC和DI

1.IOC(Inversion of Control)

背景
  • 大多数应用程序都是由两个或是更多的类通过彼此的合作来实现企业逻辑,这使得每个对象都需要获取与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,那么这将导致代码高度耦合并且难以维护和调试。
什么叫IOC
  • IOC是面向对象编程的一种设计原则(设计思想),可以用来降低计算机代码之间耦合度。
  • 系统中通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分离。
    从使用上看,以前手动new对象,并设置对象中属性的方式,控制权是掌握在应用程序自身。现在则全部转移到了容器,由容器来统一进行管理对象。因为控制权发生了扭转,所以叫控制反转。
控制反转比较形象的解释
  • 在没有加入IOC容器之前,如果对象A依赖对象B(就是对对象A某些属性进行实例化的时候,要用到对象B,这就是对象A依赖于对象B),那么对象A初始话到某一个阶段的时候,自己就必须去主动的创建对象B或者使用已经创建的对象B,无论创建还是使用对象B,控制权都在自己手上,也就是应用程序的手上。
  • 加入IOC容器之后,对象A和对象B之间就失去了直接的联系,所以当对象A运行到需要B的时候,IOC容器就会主动创建一个对象B注入到对象A需要的地方。
  • 因此,通过前后的对比,发现对象A获取对象B由主动行为变成了被动行为,这样控制权反转过来了,就是控制反转

2.DI(依赖注入)

  • 所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
实现DI的俩种方法

1.控制权注入;
2.Setter注入;

3.容器作用

  • 1.实例化,管理这些对象的生命周期
  • 2.主动组织对象与对象之间的关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值