前端之家收集整理的这篇文章主要介绍了
控制反转(依赖注入)IoC,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参考:http://baike.baidu.com/view/146665.htm#5
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 控制反转还有一个名字叫做依赖注入(Dependency Injection)。简称DI。
IoC 的类型
现有的
框架
实际上使用以下三种基本技术的框架执行服务和部件间的绑定:
类型1 (基于接口): 可服务的对象需要实现一个专门的接口,该接口提供了一个对象,可以从用这个对象查找依赖(其它服务)。早期的容器Excalibur使用这种模式。
类型2 (基于setter): 通过JavaBean的
属性(setter
方法)为可服务对象指定服务。HiveMind和Spring采用这种方式。
类型3 (基于
构造函数
): 通过构造函数的参数为可服务对象指定服务。PicoContainer只使用这种方式。HiveMind和Spring也使用这种方式。
IoC是一个很大的概念,可以用不同的方式实现。其主要形式有两种:
◇
依赖查找:
容器提供回调接口和上下文条件给组件。EJB和Apache Avalon 都使用这种方式。这样一来,组件就必须使用容器提供的API来查找资源和协作对象,仅有的控制反转只体现在那些回调方法上(也就是上面所说的 类型1):容器将调用这些回调方法,从而让应用代码获得相关资源。