码迷,mamicode.com
首页 > 其他好文 > 详细

一起写框架-控制反转(Ioc)概述(二)

时间:2017-11-11 17:44:15      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:编程思想   内聚   原理   朋友   img   英文缩写   logs   思想   ble   

控制反转概述

控制反转(Inversion of Control,英文缩写为IoC就是将代码的调用的控制权,由调用方转移给被调用方。

 

如图:修改代码A类的代码,才能将B类的对象换成C类。代码的控制权在A类(调用方)。我们将这种代码调用的方式,称为强耦合的代码调用。

技术分享 

(图2-1

 

将上图的需求,修改为使用Ioc的调用代码方式。就是将代码的控制权从调用方法修改为被调用方法,意味着,代码的调用修改被调用方(我们也称为服务方),不用修改调用方的的代码。

 

如图:

技术分享 

(图2-2

Ioc内核就是解决这两个问题

根据上图可以的得出,实现一个IoC的框架,必须要解决两个问题:

1.被调用方,在程序启动时就要创建好对象,放在一个容器里面。

2.调用方使用一个接口或类的引用(不用使用new),就可以创建获得对象。

 

我们将这种不用new,而是根据接口或者类的引用就可以从被调用的容器里获得创建的对象的方式称为依赖注入。

 

所以,控制反转(Ioc),就是依赖注入加上面向接口的编程思想的实现。

 

为什么需要IoC

首先我们需要知道,一个程序设计的原则。高内聚,低耦合。IoC容器的实现,就是用于统一管理对象与对象的关系。将本来类与类之间的调用关系,变成了引用关系。

 

降低了类与类之间的耦合度。所以IoC这套理念为低耦合而生。

 

对于Ioc实现原理有兴趣的朋友,耐心看看我的《一起写框架》栏目,里面讲述了一个Ioc的内核是怎样开发出来的!

 

 

 

一起写框架-控制反转(Ioc)概述(二)

标签:编程思想   内聚   原理   朋友   img   英文缩写   logs   思想   ble   

原文地址:http://www.cnblogs.com/zhuyuejiu/p/7819024.html

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