控制翻转和依赖注入

控制翻转

控制反转(Inversion of Control)简称ico, 是一种是面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度。其基本思想是:借助于“第三方”实现具有依赖关系的对象之间的解耦。

  1. 软件系统在没有引入IOC容器之前,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B。无论是创建还是使用对象B,控制权都在自己手上。
  2. 软件系统在引入IOC容器之后,由于IOC容器的加入,对象A与对象B之间失去了直接联系,所以,当对象A运行到需要对象B的时候,IOC容器会主动创建一个对象B注入到对象A需要的地方。

对象A获得依赖对象B的过程,由主动行为变为了被动行为

依赖注入

依赖注入就是将实例变量传入到一个对象中去

1
2
3
4
5
6
7
8
public class Human {
...
Father father;
...
public Human(Father father) { //将 father 对象作为构造函数的一个参数传入
this.father = father;
}
}