为什么ioc叫做控制反转?
百度百科的解释是控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
拿我们之前的代码举例,我们的AccountServiceImpl实现类,在调用saveAccount方法前需要创建dao层接口的实现类的对象,而原本我们可以直接使用new关键字来创建对象
但是我们现在把这种创建dao实现类对象的权力交给了BeanFactory工厂类来创建
,这种本来创建的对象的权利由当前类控制,然后转交给了BeanFactory类控制,这种控制前的转移就叫做控制反转
使用new关键字创建对象和使用BeanFactory创建对象的区别
如果使用new关键字创建对象耦合性更高,使用工厂创建对象降低了app和资源的耦合性