Ioc = inversion
DI =
依赖:如果A依赖于B 则B对A有控制权。
例如
public class A {...}
interface A {};
public class Aimpli1 implements a{};
public clsas B
{
}
B类有一个A类 B是依赖于A的,如果A变化 B就会跟着变化,也就是A对B有控制权。
例如:我们现在Aimpli1是用文件进行数据存储,我们需要一个是用数据库进行存储的实现Aimpli2.如果上面的方法就需要修改
源代码了,如下
public clsas B
{
}
这样系统的偶合性大大增加了。
也就是B的实现依赖于A的实现。 控制反转(invert of control) 就是将这种依赖发生转移,不再程序内部进行。 者往往回增加一个独立于A和B的装配器 例如jsf中的Backing Bean,可以在配置文件中进行配置,需要改变时不需要改动代码,修改配置文件就可以了。