美文网首页
浅析 ioc

浅析 ioc

作者: 小流江海 | 来源:发表于2017-11-02 17:19 被阅读0次

    一、ioc是什么?

    ioc是控制反转(inversion of control),也可以叫成依赖注入,是依赖倒置(dependency inversion principle)软件设计原则的一种实现。

    ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而是由第三方管理。这样可以带来的好处:第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度。

    例如,甲方要达成某种目的不需要直接依赖乙方,它只需要达到的目的告诉第三方机构就可以了,比如甲方需要一双袜子,而乙方它卖一双袜子,它要把袜子卖出去,并不需要自己去直接找到一个卖家来完成袜子的卖出。它只需要找第三方,告诉别人我要卖一双袜子。这下好了,甲乙双方进行交易活动,都不需要自己直接去找卖家,相当于程序内部开放接口,卖家由第三方作为参数传入。甲乙互相不依赖,而且只有在进行交易活动的时候,甲才和乙产生联系。反之亦然。这样做什么好处么呢,甲乙可以在对方不真实存在的情况下独立存在,而且保证不交易时候无联系,想交易的时候可以很容易的产生联系。甲乙交易活动不需要双方见面,避免了双方的互不信任造成交易失败的问题。因为交易由第三方来负责联系,而且甲乙都认为第三方可靠。那么交易就能很可靠很灵活的产生和进行了。

    这就是ioc的核心思想。生活中这种例子比比皆是,支付宝在整个淘宝体系里就是庞大的ioc容器,交易双方之外的第三方,提供可靠性可依赖可灵活变更交易方的资源管理中心。另外人事代理也是,雇佣机构和个人之外的第三方。

    二、ioc是用什么技术实现的?

    利用工厂模式、反射机制等实现的。

    我们可以把IOC容器的工作模式看做是工厂模式的升华,可以把IOC容器看作是一个工厂,这个工厂里要生产的对象都在配置文件中给出定义,然后利用编程语言的的反射编程,根据配置文件中给出的类名生成相应的对象。从实现来看,IOC是把以前在工厂方法里写死的对象生成代码,改变为由配置文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。

    反射机制通俗一点讲,就是根据给出的类名(字符串形式),动态的生产对象。

    自己的理解:

    ioc是依赖倒置,是软件设计的原则之一;ioc的主要思路是,利用反射技术,把对象的实例化交给第三方管理,不由使用双方管理;spring ioc是ioc的经典实现,把对像的实力话交给beanfactry管理。

    相关文章

      网友评论

          本文标题:浅析 ioc

          本文链接:https://www.haomeiwen.com/subject/euwgpxtx.html