码迷,mamicode.com
首页 > 编程语言 > 详细

Spring总结_04_IoC与DI

时间:2017-03-11 11:36:56      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:面向对象设计   nbsp   不难   应用   之间   end   概念   灵活   思想   

一.IoC

     IoC—Inversion of Control,即“控制反转”。  

     控制反转: Ioc容器来控制对象的创建(控制),由容器来创建及注入依赖对象(反转),由我们自己在对象中主动控制去直接获取依赖对象(正转)

 

     1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首先提出了IOC 这个概念。面向对象设计及编程的基本思想,简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。

     IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦,如下图:

                                                                        技术分享

 

      由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴给“第三方”IOC容器。

     若把上图中间的IOC容器拿掉,然后再来看看这套系统:

                                                   技术分享

                                                                    图4:拿掉IoC容器后的系统

        此时,A、B、C、D这4个对象之间已经没有了耦合关系,这样的话,当你在实现A的时候,根本无须再去考虑B、C和D了,对象之间的依赖关系已经降低到了最低程度。所以,如果真能实现IOC容器,对于系统开发而言,这将是一件多么美好的事情,参与开发的每一成员只要实现自己的类就可以了,跟别人没有任何关系!
  
        通过前后的对比,我们不难看出来:对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。

     

3. IoC与DI
     DI—Dependency Injection,即“依赖注入”:由容器动态的将某个依赖关系注入到组件之中。依赖注入(DI)和控制反转(IOC)是分别从主客体的角度的描述同一件事情。

     依赖注入:应用程序依赖于IoC容器(依赖)注入应用程序所需的对象(注入

 

 

 

 

 

Spring总结_04_IoC与DI

标签:面向对象设计   nbsp   不难   应用   之间   end   概念   灵活   思想   

原文地址:http://www.cnblogs.com/shirui/p/6534236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!