一、单一职能原则(SRP:Single Responsibility Principle)
1、原理
就一个类而言,应该仅有一个引起它变化的原因。单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申,将功能定义为引起变化的原因,功能过多可能引起它变化的原因就越多,这将导致功能依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。因此不要为类实现过多的功能,以保证一个类只有一个引起它变化的原因。
2、什么是职责
在SRP中,将职责定义为"变化的原因"。如果你能想到多于一个的动机去改变一个类,那么这类就具有多于一个的职责。示例:下面的Rectangle类就有多个职责,一个是负责矩形的绘制、一个是负责计算矩形的面积,如下:
3、结论
SRP是所有原则中最简单的之一,也是最难正确运用之一。我们会自然地把职责结合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。
"变化的原因"只有实际发生时才有意义,如果没有征兆,那么去应用SRP或其他的原则都是不明智的。