一、单一职能原则(SRP:Single Responsibility Principle)
1、原理
就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。此原则的核心就是解耦和增强内聚性,也就是经常说的高内聚、低耦合。
2、什么是职责
在SRP中,将职责定义为"变化的原因"。如果你能想到多于一个的动机去改变一个类,那么这类就具有多于一个的职责。示例:下面的Rectangle类就有多个职责,一个是负责矩形的绘制、一个是负责计算矩形的面积,如下:
3、结论
SRP是所有原则中最简单的之一,也是最难正确运用之一。我们会自然地把职责结合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。
"变化的原因"只有实际发生时才有意义,如果没有征兆,那么去应用SRP或其他的原则都是不明智的。