1. Duplicate code 重复代码 - 提取方法,模板方法模式
2. Long Method 过长的函数 - 条件表达 循环 注释的地方都是比较合适的提炼地方
3. Large Class 过大的类 - 提取新类 或者 扩展子类
4.Long Parameter List 过长的参数列 - 将参数包装成对象,或者将参数封装成方法
5. Divergent Change 发散式变化 - 提取改变类 (一个类因为原因要修改多个函数)
6.Shotgun Surgery 散弹式修改 - 移动方法 (一种变化引起多个类修改)
7. Feature Envy 依恋情节 - 函数对某个类依赖过高
8. Data Clumps 数据泥团 - 替换成类
9. Primitive Obsession 基本类型偏执 - 使用小对象
10. Switch Statements swicth 惊悚现身 多态
11. Parallel Inheritance Hierarchies 平行继承体系
12. Lazy Class 冗赘类
13. Speculative Generality 夸夸其谈其未来性
14. Temporary Field 令人迷惑的暂时字段
15. Message Chains 过度耦合的消息链
16. Middle Man 中间人 - 过多的委托 大部分都在委托其他对象干事情
17. Inappropriate Intimacy 狎昵关系
18. Alternative Classes with Different Interfaces 异曲同工类 - 提取超类
19. Incomplete Library Class 不完美的库类
20. Data Class 纯稚的数据类
21. Refused Bequest 被拒绝的遗赠 - 不希望继承超类的接口
22. Comments 过多的注释