一、什么是IOC
IoC Inversion of Control (控制反转/反转控制),注意它是一个技术思想,不是一个技术实现描述的事情:Java开发领域对象的创建,管理的问题。
传统开发方式:比如类A依赖于类B,往往会在类A中new一个B的对象。
IoC思想下开发方式:我们不用自己去new对象了,而是由IoC容器(Spring框架)去帮助我们实例化对象并且管理它,我们需要使用哪个对象,去问IoC容器要即可。
我们丧失了一个权利(创建、管理对象的权利),得到了一个福利(不用考虑对象的创建、管理等一系列事情)
为什么叫做控制反转?
控制:指的是对象创建(实例化、管理)的权利
反转:控制权交给外部环境了(spring框架、IoC容器)
二、IoC解决了什么问题
IoC解决对象之间的耦合问题
三、 IoC和DI的区别
DI:Dependancy Injection(依赖注入)
怎么理解:IOC和DI描述的是同一件事情,只不过角度不一样罢了。