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

2024 年 4 月 15 日 星期一
/
26
1

单一职责原则

原则说明: 单一职责原则(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
    }
}

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

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...