1、单一职责原则(Single Responsibility Principle)
核心思想
- 定义
- A class should have only one reason to change. ( 就一个类而言,应该仅有一个引起它变化的原因)
每一个职责都是变化的一个轴线(an axis of change)。当需求变化时,该变化会反映为类的职责变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。
如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生是,设计会遭到意想不到的破坏。
引用自:《Agile Software Development, Principles, Patterns, and Practices》
关于这句话中的 “类的变化” 是指什么,书中并没有给出明确的说明。从字面上来理解的话应该是指类的代码的修改。
那么单一职责的作用是什么呢?我认为主要有以下几点:
- 降低类的复杂度
- 使代码的可读性和可维护性提高。
- 降低业务的耦合度,使某项业务修改时只需要关注一个点,而不是整个业务链。(后面举例说明)