Spring框架中的控制反转(IoC)

IoC完整的称呼是Inversion of Control

IoC产生背景:在采用面向对象方法设计的系统软件中,底层实现都是有N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。即系统软件中对象之间的耦合,对象a和对象b之间有关联,但是对象b与对象c存在着复杂依赖关系,所以为了很好的处理这些对象之间的关系,控制反转就产生了。

IoC的产生过程及原理:
Michael Mattson 在一篇关于面向对象框架的文章中,首先提出了IoC的概念。简单的来说就是把复杂系统分解成相互合作的对象,这些对象通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。IoC理论的观点大体就是:借助第三方的实现具有依赖关系的对象之间的解耦:就是说把每一个对象独立封装起来,然后通过IoC容器类关联这些类对象。这样对象对象之前就通过IoC容器进行联系,但对象与对象之间没有直接联系。
但是如果把中间的IoC容器去掉之后,对象与对象之间就必须建立各种关联关系才能发挥作用,所以这样关系就会变得很复杂。所以IoC是很有必要的。
为啥叫控制反转?
——软件系统在没有引入IoC容器之前,对象a依赖对象b,所以在a对象在实例或使用的时候就必须要自己先创建好或使用已经创建好了的对象b,这样的话,控制权在我们自己的手上。
——在软件系统引入了IoC容器之后,对象a和对象b之间失去了直接联系,所以在需要对象b的话,IoC容器就会主动创建一个对象b注入到对象a所需要的地方。
——所以,在有了IoC之后,对象a获得依赖对象b的过程中,创建对象b的行为交给了IoC容器处理,控制权由我们手上交给了IoC容器自动创建,控制权颠倒了,所以称之为控制反转。

猜你喜欢

转载自blog.csdn.net/qq_41851652/article/details/82754026