美文网首页
依赖倒置原则

依赖倒置原则

作者: 格物知其道 | 来源:发表于2021-05-31 09:41 被阅读0次
  • 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件的开发效率,节约软件开发成本和维护成本,我们将在下面的几节中依次来介绍者7条原则,本节介绍里依赖倒置原则

依赖倒置原则的定义

\color{#0000ff}{依赖倒置原则(Dependence Inversion Principle-DIP)}是Object Mentor 公司总裁罗伯特·马丁(Robert C·Martin)于1996年在C++ Report 上发表的文章。
依赖倒置原则原定义:高层模块不应该依赖底层模块,两者应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High lebel modules shoulenot depend upon low level modules.Both should depend upon.Abstractions should not depend upon details. Details should depend upon adstractions).

\color{#ff0000}{核心思想:面向接口编程不要面向实现编程,降低业务逻辑间的耦合度}

\color{#ff0000}{依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。}

软件设计中,细节往往多聚变化,而抽象层先对稳定,所以要以抽象层为基础搭建框架,抽象层一般会暴露接口或定义为抽象类,细节类实现/继承抽象层完成细节逻辑。

接口和抽象类是指定规范和契约,不涉及具体业务,具体业务有细节实现类去完成。

依赖倒置原则 作用

1.降低类间的耦合性
2.提高系统稳定性
3.减少并行开发引起的风险
4.提高代码的可读性和可维护性

依赖倒置原则 实现方法

  1. 每个类尽量提供接口或抽象类,或者两者都具备
  2. 变量的声明类型尽量使接口/抽象类
  3. 任何类都不应该从具体类派生(从1.中派生)
  4. 使用继承时尽量遵循里氏替换原则

【例】依赖倒置原则“顾客购物程序”应用
分析:”顾客类“和“商店类”的关系。商店类中有sell()方法,顾客类通过此方法定义购物。

//商店Xxx 有销售方法
class Customer{
  public void shopping(XxxShop shop){
      //购物
      System.out.println(shop.sell());
  }
}
//商店Sss 也有销售方法
class Customer{
  public void shopping(SssShop shop){
      //购物
      System.out.println(shop.sell());
  }
}
//可以定义一个Shop类 让Sss Xxx 继承或实现  就都具备shell 方法
class Customer {
    public void shopping(Shop shop) {
        //购物
        System.out.println(shop.sell());
    }
}
shop.png

实现代码

package principle;
public class DIPtest {
    public static void main(String[] args) {
        Customer wang = new Customer();
        System.out.println("顾客购买以下商品:");
        wang.shopping(new SssShop ());
        wang.shopping(new XxxShop ());
    }
}
//商店
interface Shop {
    public String sell(); //卖
}
//韶关网店
class SssShop implements Shop {
    public String sell() {
        return "Sss土特产:香菇、木耳……";
    }
}
//婺源网店
class XxxShop implements Shop {
    public String sell() {
        return "Xxx土特产:绿茶、酒糟鱼……";
    }
}
//顾客
class Customer {
    public void shopping(Shop shop) {
        //购物
        System.out.println(shop.sell());
    }
}

总结:依赖倒置原则的核心是:面向接口编程不要面向实现编程,在处理业务过程中,所尽可能了解所得业务信息,以便于抽象出属性和方法,便于依赖倒置原则的应用

下一篇 上一篇

原文

相关文章

  • 依赖倒置原则

    依赖倒置原则 “依赖倒置原则(Dependence Inversion Principle,DIP)” 定义: 高...

  • 依赖倒置/好莱坞原则/控制反转

    # 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则: - 高层模块不应该依赖...

  • 第二周

    请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则 Dependency Inv...

  • 依赖倒置原则(DIP)

    依赖倒置原则定义 依赖倒置原则(Dependence Inversion Principle ,DIP)定义如下:...

  • 依赖倒置原则

    个人博客原文:依赖倒置原则 设计模式六大原则之三:依赖倒置原则。 简介 姓名 :依赖倒置原则 英文名 :Depen...

  • 架构师训练营第2周命题作业

    一.请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 1.依赖倒置原则描述: 1.1. 高...

  • 框架设计[week 2]

    作业一: 1.请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则: 高层模块不应...

  • 架构师训练营第二周作业

    1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 答:依赖倒置原则,英文缩写DIP,全...

  • 架构师训练营第2周作业 面向对象设计原则

    请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则的标准描述如下: 高层模块不应...

  • 六大设计原则-依赖倒置原则

    依赖倒置原则 Dependency Inversion Principle 简称DIP。 什么是依赖倒置原则 1....

网友评论

      本文标题:依赖倒置原则

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