就一个类而言,应该仅有一个引起它变化的原因。
职责就是“引起变化的原因”。如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。一种区分一个类是否需要分解为多个类的依据是:应用程序的变化是否总是导致类的职责的同时变化,如果是,可以不分离;如果不是,就需要将类分解。
此外,应注意:变化轴线(职责)仅当变化实际发生时才有真正的意义。如果没有征兆,那么去应用SRP,或者任何其他原则都是不明智的。
一种常见的违反SRP的情形:
就一个类而言,应该仅有一个引起它变化的原因。
职责就是“引起变化的原因”。如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。一种区分一个类是否需要分解为多个类的依据是:应用程序的变化是否总是导致类的职责的同时变化,如果是,可以不分离;如果不是,就需要将类分解。
此外,应注意:变化轴线(职责)仅当变化实际发生时才有真正的意义。如果没有征兆,那么去应用SRP,或者任何其他原则都是不明智的。
一种常见的违反SRP的情形: