单一职责原则
SRP是
面向对象设计的原则。就
一个类而言,应该仅有
一个引起它变化的原因。 为什么要把不同的职责分配到不同的类中呢?因为每
一个职责都是变化的
一个轴线,当需求变化时,该变化会反映为类的职责的变化。如果
一个类承担了多于
一个的职责,那么就意味着引起它的变化的原因会有多个。如果
一个类承担的职责过多,那么就等同于把这些职责耦合在了一起。
一个职责的变化可能会抑制到该类完成其他职责的能力,这样的耦合会导致脆弱的设计。当变化发生时,设计会受到意想不到的破坏。
这个原则的核心含意是:
一个类应该有且仅有
一个职责。关于职责的含意,
面向对象大师Robert.C.Martin有
一个著名的定义:所谓
一个类的职责是指引起该类变化的原因,如果
一个类具有
一个以上的职责,那么就会有多个不同的原因引起该类变化,其实就是耦合了多个互不相关的职责,就会降低这个类的
内聚性。