1 符号和症状2 病因3 治疗4 疗效发散式修改(divergent change)与散弹式手术(shotgun surgery)类似,但却是完全相反的。 发散式修改:对单个类做很多修改散弹式手术:同时对多个类做同样的修改 1 符号和症状修改一个类时,需要修改很多不相关的方法。比如说,添加一个新的产品类型时,必须修改产品查找、显示、排序的方法。 2 病因通常源自不良的程序结构,或者来自抄袭式编程。 3 治疗通过抽取类来切分类的行为 如果不同的类有相同的行为,可能需要通过继承组合类(抽取超类或者抽取子类) 4 疗效 改进代码组织减少代码重复简化支持