告诉我们如果和发现需要重构的代码
重复代码
过长的函数
过大的类
过长的参数列表
发散式变化:某个类因为不同原因在不同的方向上发生变化,添加一个工具必须修改同一类中的不同方法
散弹式修改:每遇到某种变化,都需要在许多不同类做出许多小修改
依恋情节:函数对某个类的兴趣高于对自己所处类的兴趣
数据泥团: 许多地方同时出现几个字段,并且他们各自都需要和其它在一起才有意义,可以封装成一个类
基本类型偏执:尝试把基本类型封装成一个对象,使之更有意义,进入面向对象的世界
switch 惊悚现身:是否switch 多处地方重复,各个case 代码重复,考虑是否能用多态替换
平行继承体系:每当你往一个类添加一个子类,需要往另外一个类添加一个子类,可以考虑一个类引用另一个类的实例
lazy class:如果一个类得不到其价值,它应该消失
夸夸其谈未来性:用一些特殊复杂方式处理一些非必要的事,如果用不到就增加了其复杂度,如果类和函数唯一用户是测试用例,那么删掉它
令人迷惑的暂时字段
过度耦合的消息链
中间人:一个类过度运用委托
异曲同工类:多个功能相同的类
不完美类库
纯稚的数据类:尝试把行为移到data class 来
被拒绝的遗赠:子类不想继承父类的行为和数据
过多的注释:尝试通过代码和方法名来说明代码的作用