美文网首页Java工作知识
设计原则:单一职责原则

设计原则:单一职责原则

作者: 谁家的猪 | 来源:发表于2019-07-10 19:44 被阅读1次

定义:不要存在多于一个导致类变更的原因
一个类/接口/方法只负责一项职责
优点:降低类的复杂度,提高类的可读性,提高系统的可维护性,降低变更引起的风险

示例

实现一个让鸟飞起来的类

代码实现

  1. 实现Bird类
/**
 * @author lijiayin
 */
public class Bird {
    
    public void fly(String birdName){
        System.out.println(birdName + "用翅膀飞");
    }
}
  1. 创建测试类
/**
 * @author lijiayin
 */
public class Test {
    public static void main(String[] args) {
        Bird bird = new Bird();
        bird.fly("大雁");
        bird.fly("鸵鸟");
    }
}
  1. 测试结果


    测试结果.png

鸵鸟也能飞?

鸵鸟是不能飞的,应该走路。

代码实现

  1. 修改Bird类
/**
 * @author lijiayin
 */
public class Bird {
    
    public void fly(String birdName){
        if("鸵鸟".equals(birdName)){
            System.out.println(birdName + "用脚走路");
        }else {
            System.out.println(birdName + "用翅膀飞");
        }
    }
}
  1. 测试结果


    测试结果.png

更好的实现方式

让每个类实现一个功能,例如飞和走应该用两个类

代码实现

  1. 创建FlyBird类
/**
 * @author lijiayin
 */
public class FlyBird {

    public void move(String birdName){
        System.out.println(birdName + "用翅膀飞");
    }
}
  1. 创建WalkBird类
/**
 * @author lijiayin
 */
public class WalkBird {

    public void move(String birdName){
        System.out.println(birdName + "用脚走路");
    }
}
  1. 修改测试类
/**
 * @author lijiayin
 */
public class Test {
    public static void main(String[] args) {
        FlyBird flyBird = new FlyBird();
        flyBird.move("大雁");
        
        WalkBird walkBird = new WalkBird();
        walkBird.move("鸵鸟");
    }
}
  1. 测试结果


  2. UML


    UML.png

相关文章

  • 单一职责原则

    个人博客原文:单一职责原则 设计模式六大原则之一:单一职责原则 简介 姓名 :单一职责原则英文名 :Single ...

  • 面向对象设计原则之单一职责原则

    单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single...

  • 六大设计原则-单一职责原则【Single Responsibil

    六大设计原则 单一职责原则 里式替换原则 依赖导致原则 接口隔离原则 迪米特原则 开闭原则 单一职责原则 定义: ...

  • 设计模式相关问题

    一、六大设计原则:单一职责原则 、开闭原则、接口隔离原则、依赖倒置原则、里氏替换原则、迪米特原则。1、单一职责原则...

  • 设计模式6原则

    设计模式6原则 参考自csdn:设计模式之六大原则 1 单一职责原则 SRP 单一职责原则(Single Resp...

  • 设计模式概览

    1.设计模式概念 2.设计模式的六大原则 单一职责原则 单一职责原则(Single Responsibility ...

  • 设计模式六大原则(一)----单一职责原则

    设计模式六大原则之【单一职则原则】 一、什么是单一职责原则 首先, 我们来看单一职责的定义. 单一职责原则,全称S...

  • 面向对象设计

    概述 7 种常用的面向对象设计原则 1、单一职责原则 单一职责原则(Single Responsibility P...

  • 设计模式之禅读书笔记

    一、六大设计原则 单一职责原则 里式替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 1、单一职责原则 ...

  • 面向对象编程的设计原则

    设计模式六大原则 单一职责原则 小话设计模式原则之:单一职责原则SRP 一个类,最好只负责一件事。理解单一职责原...

网友评论

    本文标题:设计原则:单一职责原则

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