控制反转Ioc依赖注入DI

前端之家收集整理的这篇文章主要介绍了控制反转Ioc依赖注入DI前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Ioc = inversion of control containers@H_502_4@ DI = dependency injection pattern

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

例如@H_502_4@ public class A {...}@H_502_4@ interface A {};@H_502_4@ public class Aimpli1 implements a{};@H_502_4@ public clsas B@H_502_4@ {@H_502_4@ ...@H_502_4@ A a = new Aimpl1();@H_502_4@ ...@H_502_4@ }

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

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

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

猜你在找的设计模式相关文章