单一职责原则(SRP)
2017-10-26 本文已影响36人
十亩鱼塘
1、单一职责原则(SRP)
就一个类而言,应该只有一个引起它变化的原因
? 为什么要把两个职责分离到单独的类中
因为每个职责都是变化的一个轴线(an axis of change)。当需求变化时,该变化会反映为类的职责变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会多个,
类承担的职责过多,就等于把这些职责耦合在了一起,一个职责的变化可能削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计。会破坏设计。
2、什么是职责
在SRP中,职责定义为变化的原因。如果能够得到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。
如果应用程序的变化方式总是导致这两个职责同时变化,那么就不必分离它们,实际上,分离它们就会具有不必要的复杂性的臭味。
得到一个推论:
变化的轴线仅当变化实际发生时才具有真正的意义。如果没有征兆,那么去应用SRP,或者任何其他原则都是不明智的。