Java真的不难(三十八)设计模式的六大原则(2)

设计模式的六大原则(2)

在上一篇文章中讲到了开闭原则和里氏代换原则,只有这些设计原则的存在,才会让我们的程序更加规范便于二次开发,这篇文章将介绍依赖倒置原则单一职责原则

1、依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则:

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象

其核心思想是: 要面向接口编程,不要面向实现编程

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

依赖倒置原则的作用:

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

依赖倒置原则的实现方法:

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

演示案例:

顾客可以在多个网店购物:

结构图:
在这里插入图片描述

商店接口:

扫描二维码关注公众号,回复: 14385635 查看本文章
/**
 * 商店
 */
public interface Shop {
    
    

    public String sell(); //卖东西
}

淘宝网店(继承商店接口):

/**
 * 淘宝网店
 */
public class tbShop implements Shop{
    
    


    @Override
    public String sell() {
    
    
        return "在淘宝网店上购物";
    }
}

天猫网店(继承商店接口):

/**
 * 天猫网店
 */
public class tmShop implements Shop{
    
    

    @Override
    public String sell() {
    
    
        return "在天猫网店上购物";
    }
}

顾客类:

/**
 * 顾客
 */
public class Customer {
    
    

	//一个购物的方法
    public void shopping(Shop shop){
    
    
        System.out.println(shop.sell());
    }
}

测试类:

/**
 * 测试类
 */
public class Test {
    
    
    public static void main(String[] args) {
    
    
        Customer c = new Customer();
        c.shopping(new tbShop());
        c.shopping(new tmShop());
    }
}

结果:

在淘宝网店上购物
在天猫网店上购物

在这个案例中,所有的网店类都是依赖商店接口,使用商店接口里面的购物方法,这也就是依赖倒置原则

2、单一职责原则(Single Responsibility Principle)

单一职责原则的定义:

规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分

但是这个原则提出一个对象不应该承担太多职责,如果存在,有以下缺点:

  1. 一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力
  2. 当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费

单一职责原则的优点:

  1. 降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多
  2. 提高类的可读性。复杂性降低,自然其可读性会提高
  3. 提高系统的可维护性。可读性提高,那自然更容易维护了
  4. 变更引起的风险降低。变更是必然的,如果单一职责原则遵守得好,当修改一个功能时,可以显著降低对其他功能的影响

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_57310550/article/details/124111660
今日推荐