Spring学习(1) IOC的含义,思想以及实现方法。

来源:互联网 发布:赌球外围软件 编辑:程序博客网 时间:2024/06/06 03:58

Spring框架中的IOC思想是spring框架中关键的概念:

1.含义如下:

IOC—–Inersion of Control:控制反转,是一种设计思想。大致含义是:把自己设计好的类,放入Ioc容器中进行统一控制,而不是按照传统方式在类的内部进行控制。比如有这样的场景,类A依赖于类B,那么在我创建类A的时候就需要先进行类B的创建,而在Ioc思想下,类A和类B之间的依赖关系,创建,协调等。都是通过Ioc容器来控制的,我们只需要重点关注业务逻辑。从这点来说反转就体现在这里,类的创建有第三方类控制,在涉及到依赖类的时候自动去进行注入。
Ioc最核心的地方在于,需要资源的双方不去控制这个资源,而是由完全不需要资源的第三方类来控制。1,资源集中管理。2,降低了资源双方的依赖程度,也就是我们说的耦合。Ioc的核心思想就是这个第三方的类。A卖东西给B,在Ioc思想下,A和B不联系,A通过把东西给第三方类,当发现B需要这样东西时,第三方类再注入给B。

有以下几个比较关键且有思想性的图片。经常看看。

三幅图片描述了Ioc对于耦合性的优化效果
这个描述的更为直白

#知乎上有一个回答是说反向依赖的,感觉这个也有道理,原答案实在太长,这里我先简单的归纳一下,所谓这个反向依赖就是,依赖关系的变化,车子—依赖—-底盘—-依赖—车身—依赖—轮子那么这个流程中,如果轮子变化了,那么整个流程就崩溃了,所以尝试反转这种依赖关系,轮子—依赖—–车身—-依赖——底盘—–依赖—–车子。
ok,如果此时轮子再变也不会影响到整个流程了。那怎么实现这种方式呢?,注入。依赖注入。(set,接口,构造函数)。

https://www.zhihu.com/question/23277575

2.DI—–Dependency Injection -依赖注入,我们通过Ioc的控制反转来看,一个关键的思想是动态的向某个对象提供它依赖的类。这个就是依赖注入做的工作。没有这个又何谈反向控制和动态代理呢?

依赖注入有三种方式:
set
接口
构造函数

原创粉丝点击