单一职责原则

单一职责原则

定义

单一职责原则(SRP:Single responsibility principle)又称单一功能原则,该原则规定:一个类应该只有一个发生变化的原因(There should never be more than one reason for a class to change)。我们称“类发生变化的原因”为“类的职责”。

原理

如果一个类承担了过多的职责,职责间可能相互耦合,一个职责的改动可能会对其他职责造成影响。单一职责原则就是为了避免这种情况大发生而提出的。

核心

单一职责原则的核心是职责间解耦以及增强类的内聚性

必要性

单一职责原则的本意是限制一个类承担职责的数量不要过多,类承担过多的职责至少存在以下缺点:

  1. 容易造成职责间的耦合。
  2. 类的复用性降低。承担越多的职责,类的粒度越大,类的复用性越低。
  3. 职责调用成本高。需要使用类的某个职责时,不得不将类的其他职责也全部包含进来,容易造成代码的冗余和浪费。

意义

遵循单一职责原则至少具有以下意义:

  1. 降低类的复杂度。类专注以一个职责,其逻辑肯定要比负责多个职责清晰、简单的多。
  2. 提高类的可读性。由于专注于一个职责,类的逻辑更加简单,可读性更高。
  3. 提升系统的可维护性。
  4. 降低系统调整造成的影响。
  5. 提高类的可复用性。专注于一个职责有助于控制类的粒度不会太大,粒度较低的类可复用性更高。

实现

单一职责原则并不难理解,可是遵循起来并不容易,发现并分离软件系统的职责比较考验开发人员的系统分析能力以及系统重构经验。

其他

单一职责原则同样适用于方法

一个方法应该尽可能做好一件事情,而不是做更多的事情,之所以这么说主要是出于对以下几点的考虑:

  1. 可读性、可维护性
  2. 可复用性

你可能感兴趣的:(软件设计原则,单一职责原则,软件设计原则)