腐化软件的特点:
-
僵化性:单一改动会导致有依赖关系的模块的连锁改动。
-
脆弱性:进行一个改动时,程序的很多地方都会出问题。
-
不必要的复杂性:设计中包含了当前没有用到的组成部分。
需求的不断变化,导致了软件的改动,最终导致了软件的腐化。
如果软件的设计由于需求的变化而退化,那么就是不敏捷的。
团队不是在一开始设计模块时就试图预测程序如何变化,相反,他们是以最简单的方法编写的,直到需求最终确实变化时,他们才修改模块的设计,使之对该种变化保持弹性。
敏捷设计是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。
如果程序的变化总是导致两个职责同时发生变化,那么就不必分离它们。