Java设计原则——单一职责原则

我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习。
学习从来无捷径,循序渐进登高峰。

在这里插入图片描述

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据),有的教科书上写的是六大原则,但是后来又新加了一个合成复用原则。本篇博客主要记录单一职责原则

一、基本介绍

对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2。

二、应用实例

1、示例1

用一个类来描述程序员编写代码这个场景。

public class AnimalTest {
    public static void main(String[] args) {
        Programmer programmer = new Programmer();
        programmer.program("静静"); // 静静使用记事本编写代码。
        programmer.program("标标"); // 标标使用Eclipse编写代码。
    }
}

class Programmer {
    void program(String programmer) {
        System.out.println(programmer + "使用Eclipse编写代码。");
    }
}

2、示例2

在工作中发现,并不是所有的程序员都使用IDEA编写代码的,有的程序员喜欢用Eclipse,有的程序员喜欢用记事本。那么,这时候如果要遵循单一原则,就需要将Programmer类细分为野生程序员EclipseProgrammer和大佬程序BossProgrammer。

public class AnimalTest {
    public static void main(String[] args) {
        BossProgrammer bossProgrammer = new BossProgrammer();
        bossProgrammer.program("静静"); // 静静使用记事本编写代码。
        EclipseProgrammer eclipseProgrammer = new EclipseProgrammer();
        eclipseProgrammer.program("标标"); // 毛毛使用Eclipse编写代码。
    }
}

class BossProgrammer {
    void program(String programmer) {
        System.out.println(programmer + "使用记事本编写代码。");
    }
}

class EclipseProgrammer {
    void program(String programmer) {
        System.out.println(programmer + "使用Eclipse编写代码。");
    }
}

但是这样做的改动很大,即将类分解,同时修改客户端(客户端一般就是指的调用方)

3、示例3

改进:直接修改Programmer类,改动的代码会比较少

通过方法来进行区分其行为(Java当中行为指的就是方法)

public class AnimalTest {
    public static void main(String[] args) {
        Programmer programmer = new Programmer();
        programmer.bossProgrammer("静静"); // 静静使用记事本编写代码。
        programmer.eclipseProgrammer("标标"); // 毛毛使用Eclipse编写代码。
    }
}

class Programmer {
    void bossProgrammer(String programmer) {
        System.out.println(programmer + "使用记事本编写代码。");
    }
    void eclipseProgrammer(String programmer) {
        System.out.println(programmer + "使用Eclipse编写代码。");
    }
}

三、单一职责原则

上面的示例是一种思想,而不是说一个方法,就一句话,我就非得都拆成两个类或者两个方法,那个我感觉大可不必,完全一个if else就可以。

不管是设计原则也好,还是设计模式也罢,更多的是一种思想,也可以认为是一种规范。

单一职责原则注意事项和细节

  1. 降低类的复杂度,一个类只负责一项职责。
  2. 提高类的可读性,可维护性
  3. 降低变更引起的风险
  4. 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少可以在方法级别保持单一职责原则
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值