码迷,mamicode.com
首页 > 编程语言 > 详细

Spring IoC 概述

时间:2020-04-01 12:37:32      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:实现   注入   核心   资源   依赖倒置   ebe   png   enc   str   

问题:

1.什么是依赖倒置?

2.什么是控制反转?

3.什么是依赖注入?

4.它们之间的关系是怎样的?

5.优点有哪些?

带着上面的5个问题,我们开始今天的学习。

依赖倒置原则 (Dependency Inversion Principle)

依赖倒置是一种设计原则。

依赖倒置包括三层含义:
(1)高层模块不应该直接依赖于底层模块,两者都应依赖其抽象;
(2)抽象不应依赖于细节;
(3)细节应该依赖于抽象。

控制反转 (Inversion of Control)

控制反转是一种思想。其核心思想在于,合作的对象依赖关系的管理不由具体对象来完成,而是具体对象交出依赖关系的控制权,由第三方容器来集中管理。

第三方容器管理的优点:
(1)依赖关系的集中管理,关系清晰且易管理;
(2)降低合作对象之间的耦合程度。

举个栗子。我想在北京租一间房子,我只需要把我的需求告知链家等中介公司,通过他们整合的资源,我就能够找到一间符合我需求的房子。我不需要与房东产生任何直接的关系,中间的任何问题都由链家进行统一处理。在这个例子中,房客与房东是两个独立的对象,而链家则是充当中间容器

依赖注入(Dependency Inversion)

依赖注入是控制反转的具体方法之一。依赖注入就是将底层依赖对象以参数形式传入上层对象。

对象间的依赖关系的管理被反转至IoC容器中。对象间的依赖关系由IoC容器进行统一管理,并由IoC容器来完成对象的注入。

依赖倒置原则 、控制反转 、依赖注入的关系

技术图片

优点

1.实现模块间松耦合

2.由IoC容器来统一管理依赖关系,对象从复杂的依赖关系中解放。

3.对象自身弄够专注于自身功能上,不需要了解依赖对象的内部结构。

参考

[1]https://en.wikipedia.org/wiki/Dependency_injection

[2]https://martinfowler.com/articles/injection.html

[3]https://www.zhihu.com/question/23277575

[4]《Spring技术内幕》

[5]《设计模式之禅》

Spring IoC 概述

标签:实现   注入   核心   资源   依赖倒置   ebe   png   enc   str   

原文地址:https://www.cnblogs.com/boycelee/p/12611557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!