单一职责原则(SRP)
- 一个类应仅有一个引起它变化的原因.
- 内聚性.
- 每个Responsibility都是变化的一个轴线.当需求变化时,该变化会反映为类的职责的变化
- 当一个类耦合了多个职责时,一个职责的变化会消弱或抑制其他职责的能力.这种耦合导致了fragile的设计.
- 职责.A reson for change.
- 一个类负担的N个职责是否应该分开.取决于APP变化的方式.如果程序变化总是导致N个职责同时变化,那么不必.而反之需要解耦这些职责.
- 变化的轴线仅当实际发生时才有意义,在没有征兆时应用SRP或者其他原则都是不明智的.
- 解耦职责后,肯定会有一个kludge杂凑物来耦合这些职责,但是除了main外,都不需要知道它的存在,所以它不影响依赖关系.
当需求变化时,引起了类中无关联部分的联动修改,即产生了fragile时,应将实现该需求的职责部分从该类中解耦.
一个含有业务规则和持久化控制的类,在多数情况下应该将两个职责进行分离.
[Agile Software Development(Principles,Patterns,and Pracitices)]