控制反转(IoC)
1.控制反转并不是一种技术,而是基于容器的一种设计思想。
2.控制反转是将外部容器作为一个管理者,它管理着所有bean的生命周期和bean之间的联系,在项目运行时主动地将对象A想要的东西给对象A,也可以将对象A传递给需要它的对象,容器管理着所有bean的创建与销毁,是整个spring的核心,这也是将程序代码的控制权转移到了容器手中,也就是控制反转的含义。
3.控制反转是对解耦思想的一种应用,将对程序代码的强依赖转变成弱依赖,大大提升了维护的效率。
依赖注入(DI)
依赖注入更像是对控制反转思想的一种应用,在一个对象需要用到另一个对象时,直接通过外部注入的方式将要用的对象注入到类中,不用在代码内直接创建调用者,这样就可以减少耦合的产生,能有效减少后期维护的成本。
总结:
耦合性是一个程序员在创建项目时应该考虑的事情,它直接关系到一个项目的代码编写与后期维护的成本,而控制反转和依赖注入都是为了解决解耦的问题而产生的思想,控制反转和依赖注入都是在描述解耦的方式,区别在于控制反转更像是一种思想,而依赖注入更多的是一种应用方式。
本博客是在学习过程中的感悟,有不足和理解错误之处望各位指正。