序言
本文是书籍《重构:改善既有代码的质量》的一个缩影。
定义
1.重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
2.使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。
代码的坏味道
- 重复代码
- 过长函数:程序越长越难理解,函数应该以用途命名。
- 过大的类
- 过长参数列:太长的参数列难以理解,会造成前后不一致,不易使用
- 发散式变化:一个类受多种变化的影响
- 霰弹式修改:一种变化引发多个类相应修改
- 依恋情结:作者认为对象技术的全部要点在于,将数据和对数据的操作行为包装在一起
- 数据泥团:提倡以一个新对象,来取代两个或多个字段
- 基本类型偏执:提倡将关联的基本数据类型封装到对象中,例如起始值组成的range类
- switch惊悚现身:同样的switch散布在不同地点
- 平行继承体系:问题是当为某个类增加一个子类时,也必须为另一个类相应地增加一个子类
- 冗赘类:提倡如果一个类不值得花时间去理解维护,就应该消失
- 夸夸其谈未来性:认为如果用不到,就不值得。用户上的装置只会当你的路,所以把它搬开
- 令人迷惑的暂时字段:建议不要讲个例参数加入通用方法,以免难以理解
- 过度耦合的消息链:客户代码与函数链紧密耦合,函数链太长等,建议将需要的代码提取为独立函数,避免过度耦合
- 中间人:例如某个类接口有一半的函数都委