多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
在讲到依赖注入前,这里有必要举一个比较形象的例子。笔者非常喜欢机械手表,通过机械表的背透 或者打开后盖,会发现里面有很多齿轮。这些齿轮相互独立并且相互啮合在一起,协 同工作,组成一个齿轮组去完成某一项任务。如果这些齿轮中有一个出现了问题,可能就会影响整个齿轮组的正常运作。 齿轮组中齿轮之间的啮合关系与软件系统中对象之间的耦合关系非常相似。对象之间的耦 合关系是无法避免的,而且随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常出现对象之间的多重依赖性关系。为了解决对象之间耦合度过高的问题,软件专家Michael Mattson提出 了IoC理论,用来实现对象之间的解耦。IoC是Inversion of Control的缩写,即控制反转。 IoC理论提出的观点 大体是这样的:**借助于“第三方 实现具有依赖关系的对象之间的解耦。**如图9-5所示,引入IoC容器后,使得 A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠IoC容器。如果去掉中间的IoC容器,我 们就会发现A、B、C、D这4个对象之间已经没有了耦合关系,彼此之间毫无联系. ![](https://img.kancloud.cn/dd/dc/dddc1a332120a48c6bf8782eb397d203_223x152.png) ![](https://img.kancloud.cn/c8/ab/c8abcc2c825e6d17a515b9933b203f9a_260x159.png)