控制反转Ioc依赖注入DI

Ioc = inversion of control containers
DI = dependency injection pattern

依赖:如果A依赖于B 则B对A有控制权。

例如
public class A {...}
interface A {};
public class aimpli1 implements a{};
public clsas B
{
...
A a = new aimpl1();
...
}

B类有一个A类 B是依赖于A的,如果A变化 B就会跟着变化,也就是A对B有控制权。

例如:我们现在aimpli1是用文件进行数据存储,我们需要一个是用数据库进行存储的实现aimpli2.如果上面的方法就需要修改
代码了,如下
public clsas B
{
...
A a = new aimpl2();
...
}
这样系统的偶合性大大增加了。

也就是B的实现依赖于A的实现。 控制反转(invert of control) 就是将这种依赖发生转移,不再程序内部进行。 者往往回增加一个独立于A和B的装配器 例如jsf中的backing Bean,可以在配置文件中进行配置,需要改变时不需要改动代码修改配置文件就可以了。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...