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

控制反转概述

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

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

 

(图2-1

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

如图:

 

(图2-2

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

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

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

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

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

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

为什么需要IoC

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

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

 

 

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