代码的坏味道
Duplicated Code 重复代码
Long Method 过长函数
Large Class 过大的类
Long Parameter List 过长参数列:类或者结构
Divergent Change 发散式变化:一个类受多种变化的影响
Shotgun Surgery 霰弹式修改:一种变化引发多个类相应修改。
Feature Envy 依恋情结:一个类里的方法对另一个类的数据需求很大,需要移动方法的位置。
Data Clumps 数据泥团:总是绑在一起出现的数据真应该拥有它们自己的对象。
Primitive Obsession 基本类型偏执:灵活用由基本类型组成的小对象
Switch Statements switch惊悚现身:考虑是否要用多态
Parallel Inheritance Hierarchies 平行继承体系:继承在什么时候用
Lazy Class 冗赘类:该消失的消失。
Temporary Field 令人迷惑的暂时字段:其内某个实例变量仅为某种特定情况而设。-->提取新的类。
Message Chains 过度耦合的消息链:一个对象请求另一个对象,再请求另一个对象…… -->委托
Middle Man 中间人:把过多的委托变成有作为的子类
Inappropriate Intimacy 狎昵关系:两个类太过亲密,使用委托或者新类
Alternative Classes with Different Interfaces 异曲同工的类
Comments 过多的注释