代码坏味 | 重构方法 |
重复代码 | 形成Template Method |
方法过长 | 组合方法 |
条件逻辑太复杂 | 用Strategy替换条件逻辑 将装饰功能搬移到Decorator 用State替换状态改变语句 引入Null Object |
基本类型迷恋 | 用类替换类型代码 用State替换条件改变语句 用Strategy替换条件逻辑 用Composite替换隐函树 用Interpreter替换隐式语言 将装饰功能搬移到Decorator 用Builder封装Composite |
不恰当的暴露 | 用Factory封装类 |
解决方案蔓延 | 将创建知识搬移到Factory |
相似功能的类 | 通过Apapter统一接口 |
冗赘类 | 内敛Singleton |
类过大 | 用Command替换条件调度语句 用State替换状态改变语句 用Interpreter替换隐式语言 |
分支语句 | 用Command替换条件调度程序 将聚集操作搬移到Visitor |
组合爆炸 | 用Interpreter替换隐式语句 |
怪异解决方案 | 通过Adapter统一接口 |