zoukankan      html  css  js  c++  java
  • 依赖倒置原则DIP&控制反转IOC&依赖注入DI

    依赖倒置原则DIP是软件设计里一个重要的设计思想,它规定上层不依赖下层而是共同依赖抽象接口,通常可以是上层提供接口,然后下层实现接口,上下层之间通过接口完全透明交互。这样的好处,上层不会因依赖的下层修改而修改。比如汽车依赖底盘,底盘依赖轮胎,如果不用DIP设计,轮胎变了,就要修改底盘,修改汽车,可维护性很差。

    而控制反转是IOC是实现DIP原则的一个思路,即把从上到下的依赖关系变成从下到上依赖设计好的接口。而实现IOC的方法之一就是依赖注入DI,即在创建上层对象的时候将它依赖的接口实例对象通过构造函数、setter方法、接口传递等方式注入进来。底层类作为参数传入上层类,从而实现上层类对下层类的“控制”。

     Spring IOC作为第三方IOC容器,将所有资源及依赖统一管理,降低了资源双方的依赖程度,从而达到解耦的目的。

    注控制反转IOC的另一种理解:在没有IOC容器之前,有对象主动控制在何时、如何构建自己依赖的对象,而有了IOC容器以后,容器会自动创建所有对象并注入它们依赖的对象,相当于依赖对象的创建注入控制被反转了。

    Spring IoC有什么好处呢?

    为增加软件的可维护性,设计分层时要应用依赖倒置DIP原则,其思路是采用控制反转IOC,具体实现通过依赖注入DI(实例化对象时就将它依赖的实例对象传入,而不是在实例化对象过程中,在临时创建依赖的对象),一般项目上可采用线程的IOC容器,比如Spring IOC。

    博客园bug,粘贴上传图片提示要登录。

  • 相关阅读:
    numpy数组行列拼接
    Dropout和BN层的模式切换
    利用sklearn计算决定系数R2
    从曲线图中提取原始数据
    Matlab在极坐标中绘图
    MATLAB中scatter绘制散点图
    说一说你对HTML5语义化的理解
    第十一章 前端开发-html
    详解mysql int类型的长度值问题
    进程间通信(队列和管道)
  • 原文地址:https://www.cnblogs.com/doit8791/p/8902512.html
Copyright © 2011-2022 走看看