设计模式 - 浅谈单一职责原则

单一职责原则

原则说明:单一职责原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。

为什么要遵守该原则

违反单一职责原则会导致代码的复杂性增加,可读性降低,同时也会增加代码修改的难度。当一个类承担的职责过多时,这个类的复杂性就会增加,这就增加了出错的可能性。

示例

假定我们要输出一个日志,定义了一个日志类

public class Log {
    public void getLog() {
        // 获取Log
    }

    public void formatLog() {
        // 格式化Log
    }

    public void printLog() {
        // 打印Log
    }
}

这个类违反了单一职责原则,因为它有三个职责:获取日志、格式化日志和打印日志。
如果我们需要改变日志的获取方式(或改变日志的格式或打印方式),我们就需要修改这个类。
为了遵守单一职责原则,我们应该将这个类分解为三个类,每个类只负责一项职责。

public class Log {
    public void getLog() {
        // 获取Log
    }
}

public class LogFormatter {
    public void formatLog(Log log) {
        // 格式化Log
    }
}

public class LogPrinter {
    public void printLog(Log log) {
        // 打印Log
    }
}

这样我们就遵守了单一职责,我们的代码就更加模块化,易于理解和维护。

本文链接:

https://pugqq.com/archives/single-responsibility.html
设计模式 - 浅谈单一职责原则 - I/O
快来做第一个评论的人吧~

# 最近更新

JDK国内镜像加速下载2023-05-02

博客评论系统增加悄悄话/匿名留言模式2023-04-10

博客评论系统引入极验api2023-03-22

博客评论系统表情栏优化2023-02-04

centos用firewalld开放端口2022-08-12

数据结构与算法之红黑树2022-03-12

数据结构与算法之字典树2022-03-02

数据结构与算法之LSM树2022-02-24

数据结构与算法之B+树2022-02-15

数据结构与算法之堆2022-02-12