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