ioc 容器 白话版

2017-07-29  本文已影响0人  bigseaken

IOC 亦称“依赖倒置原则”。

 维基百科对其概述位指一种特定的解耦(传统的依赖关系创建在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。                                                      

大白话就是解耦组件之间的关系。比如现在二狗有一对阿迪王,但是了这对阿迪王没有鞋带,二狗要去买一条白色鞋带,这样就组成了一对白色鞋带+阿迪王 ,这种组合经常在鞋店看到,这种情况二狗就赖得自己去买鞋带了,直接买一双这样的阿迪王就好了,花心的二狗,第二天二狗就不喜欢白色的鞋带了,二狗要蓝色的,刚好鞋店又有这样的款式,二狗不可能这么傻的又买一双吧,二狗只要蓝色鞋带而已,所有这种情况基本上来说阿迪王跟鞋带解耦了。说的这么多还不如直接上代码好呢。。。。

二狗真的好傻 居然为了要一双蓝色鞋带的阿迪王真的去买了。。。

在二狗的思想了鞋带跟鞋子是一体的不能分割的耦合性很强的,但是二狗发现自己不是富二代,也发现自己的思想错了,鞋子跟鞋带是可以分开的(解耦),只要自己喜欢什么颜色的自己的弄就好了。

阿迪王不依赖鞋带的颜色,只要给鞋带就行,”使得高层次的模块不依赖于低层次的模块的实现细节“ 低层次模块依赖于高层次模块的需求抽象

直接引用维基百科中的图

上面所说的直接将组件之间解耦了,但是还没有说到IOC容器如何方便我们开发呢。其实一开始的时候二狗的思想是对的,他只要一双白色鞋带的阿迪王,鞋店直接给他就行了,下次二狗要换一双蓝色的阿迪王的时候,鞋店帮二狗的阿迪王换了蓝色的鞋带就好了,二狗不用关心自己会不会穿鞋带,鞋店直接帮他做好了。鞋店充当ioc容器,二狗只要提供想要的对象,鞋店直接提供了。

ioc容器帮处理好对象之间的关系 

其实这样看就好Ioc容器就是一座bean工厂,帮我们生产我们要的东西。

上一篇下一篇

猜你喜欢

热点阅读