浏览 1206 次
锁定老帖子 主题:小议lIOC
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-27  
1.ioc定义 IoC就是Inversion of Control,控制反转。 IoC 的概念是Michael Mattson在1996年一篇讨论面向对象框架(Object Oriented Frameworks)的文章中提出的。面向对象设计及编程(OOD/OOP)的基本思想简单地说就是把复杂软件系统分解成通过接口相互合作的对象。这些对象类的内部实现之间并不互相牵扯,因而降低了问题的复杂性,且可独立灵活地被重用和扩展。经典面向对象的编程语言(如C++,Java)的侧重点就是提供语言机制来方便并简化这种基于对象类的分解,重用和扩展。 在基于模块化软件组装部署配置框架设计中,Michael Mattson提出了基于IOC容器的IoC设计原则。依照该原则,业务逻辑模块并不需知道更不必调用组件框架的服务,例如不用关心和调用其factory或lookup其directory或context等。软件的组装部署和配置完全是由Ioc容器反过来主动控制业务逻辑模块来安排。Michael Mattson用所谓的好莱坞原则(Hollywood Principle)“别来找我,到时候,我会去找你”(don't call me, I will call you)形象地比喻了这一设计思想。这个比喻中的“我”指的是Ioc容器,“你”则是被其调遣配置的一个组件。 在Java开发中,IoC地实现通过工厂模式,由工厂新建所需要的类。在j2ee轻量级框架中,则由ioc容器来控制。ioc容器的一个著名实现是Spring.另外一个Guice,google名下的产物.这两种实现代表了ioc技术的两个发展方向。他们之间的最根本的区别在于,spring采用XML文件的形式来配置依赖注入关系;而Guice完全通过Java 5注解实现类型安全的注入。 2.spring的ioc容器实现 使用spring的方式,创建一个由spring ioc容器控制的ioc的应用程序。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics