观摩某位大佬的博客后对IOC的理解
灵感来源: https://www.cnblogs.com/superjt/p/4311577.html 1. 耦合: 在采用 面向对象 方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。 图一 耦合不仅出现在对象与对象之间,也出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。为了解决对象之间的耦合度过高的问题,软件专家Michael Mattson提出了IOC理论,用来实现对象之间的“解耦”。 2. 控制反转(IOC): IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”。 面向对象设计及编程的基本思想 大致上就是:把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。 IOC理论提出的观点大体是这样的: 借助于“第三方”实现具有依赖关系的对象之间的解耦。 图二 IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”,全部对象的控制权全部上缴给