单一职责(Simple Responsibility Pinciple, SRP) 是指不要存在多于一个导致类变更的原因.
一个类应该有且只有一个变化的原因。
There should never be more than one reason for a class to change.
在单一职责原则(SRP:Single Responsibility Principle)的概念中,我们将职责(Responsibility)定义为 "一个变化的原因(a reason for change)"。如果你能想出多于一种动机来更改一个类,则这个类就包含多于一个职责。
单一职责的优点:
1、职责内敛、功能内聚、变化的原因之间没有耦合
2、可以降低类的复杂度, 提高类的可读性, 提高系统的可维护性, 降低变更引起的风险
3、面向对象编程,业务领域进行原子性抽象
假设我们有一个类负责两个职责, 一旦发生需求变更, 修改其中一个职责的逻辑代码, 有可能导致另一个职责的功能发生故障. 这样一来, 这个类就存在两个导致类变更的原因. 可以将两个职责用两个类来实现, 进行解耦. 后期需求变更维护互不影响. 这样的设计, 可以降低类的复杂度, 提高类的可读性, 提高系统的可维护性, 降低变更引起的风险.总体来说, 就是一个类, 接口或方法只负责一项职责
单一职责原则(SRP:Single Responsibility Principle)可表述为 "一个类应该有且只有一个变化的原因(There should never be more than one reason for a class to change.)"。单一职责原则是一个非常简单的原则,但通常也是最难做的正确的一个原则。职责的联合是在实践中经常碰到的事情,从这些各不相同的职责中发现并隔离职责就是软件设计的真谛所在。我们所讨论的其他设计原则最终也会回归到这个原则上来。