敏捷软件开发(五):单一职责原则(SRP)
社么是敏捷设计?敏捷设计是一个过程,不是一个事件。他是一个持续应用原则、模式以及实践来改进软件的结构和可读性的过程。他致力于保持系统设计在任何时候都尽可能简单、干净以及富有表现力。
下面我们介绍一些软件设计的一些原则和模式。
单一职责原则(SRP):
就一个类而言,应该仅有一个因其他变化的原因。
1.社么是职责?
在SRP中,我们把职责定义为“变化的原因”。如果你能够想到多于一个的动机去改变一个类,那这个类就具有多于一个的职责。
2.如何判断两个职责是否应该被分开?
这依赖于应用程序变化的方式。如果应用程序的变化会影响连续函数的签名,那么为了防止程序僵化,这两个职责应被分离;如果程序变化总是导致两个职责同时变化,那就不必分离他们(事实上分离他们可能引入不必要的复杂性)
3. 持久化
大多数情况下把持久化和业务规则绑在一起是不明智的。还好,正如“测试”一章所言,测试驱动的开发实践常常会迫使在出现code smell之前分离这两个职责。如果不是这样,应该用FACADE或PROXY模式进行重构。