美文网首页
控制反转(IOC)和依赖注入(DI)-读书笔记

控制反转(IOC)和依赖注入(DI)-读书笔记

作者: 泰格谢 | 来源:发表于2018-11-18 04:20 被阅读0次

    控制反转(Inversion Of Control)

    是面向对象编程的一种设计模式,可以用来降低计算机代码之间的耦合度。

    依赖注入(Dependency Injection)

    是这种设计模式的实现方式,即通过控制反转,在对象被创建的时候,由一个能够调控系统中所有对象的外界实体,将其所依赖的对象的引用传递给它,也可以说,将依赖注入到对象中。

    起源

    2004年Mating Fowler提出了“哪些方面的控制被反转了?”,并总结出依赖对象的获得被反转了,因为大多数应用都是由两个以上的类彼此合作构成业务逻辑,这就意味着每个对象需要获得与合作对象的引用(对象依赖),如果获取的过程都是由自身完成,那么 将导致代码高度耦合并且难以维护和调试。

    Spring IOC容器

    在Spring中,IOC容器是控制反转的载体,即调控系统,控制反转是Spring框架的核心。通过使用IOC容器,对象依赖关系的管理被反转了,转到了IOC容器中,并由IOC容器完成对象的注入,在很大程度上简化了应用的开发,把应用从重复的对象依赖关系管理中解放出来。

    简单的说,因为很多对象依赖关系的建立和维护并不需要和系统运行状态有很强的关联性,所以可以把面向对象编程中需要执行的诸如对象创建、为对象引用赋值等操作交于容器统一完成。这样的话,这些散落在不同代码中的功能相同的部分就集中成为容器的一部分,也是成为面向对象系统基础设施的一部分。

    面向对象系统中可以对象简单分为:数据对象和处理数据的对象,这很大一部分处理数据的对象,并不常变化,是系统中的基础部分,在很多情况下,这些对象以单件的形式存在就能满足应用需求,它们也不常涉及数据和状态共享,如果涉及共享的话,需要在单件的基础上做进一步处理。

    相关文章

      网友评论

          本文标题:控制反转(IOC)和依赖注入(DI)-读书笔记

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