1. 何谓重构
重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
2. 为何重构
- 改进软件设计
- 使软件更容易理解
- 帮助找到bug
- 提高编程速度
3. 何时重构
- 添加功能时重构
- 修补错误时重构
- 复审代码时重构
4. 坏代码
- Duplicated Code(重复代码)
- Template Method设计模式
- Long Method(过长函数)
- 需要注释说明的内容都需要提炼到独立函数中
- 提炼循环语句到独立函数
- 使用Decompose Conditional(238)处理条件表达式
- Large Class(过大的类)
- Extract Class(149)
- Extract Subclass(330)
- Long Parameter List(过长参数列)
- Replace Parameter with Method(292)
- Preserve Whole Object(288)
- Introduce Parameter Object(295)
- Divergent Change(发散式变化):一个类受多种变化的影响
- Extract Class(149)
- Shotgun Surgery(霰弹式修改): 一个类变化引发多个类相应修改
- Move Method(142)
- Move Field(146)
- Inline Class(154)
- Feature Envy(依恋情结)
- Data Clumps(数据泥团)
- Primitive Obsession(基本类型偏执)
- Replace Data Value with Object
- Switch Statements
- 使用多态代替
- Parallel Inheritance Hierarchies(平行继承体系)
- Lazy Class(冗赘类)
- Collapse Hierarchy(344)
- Inline Class(154)
- Speculative Generality(夸夸其谈未来性):定义了目前不会用到的类或方法
- Temporary Field(令人迷惑的暂时字段)
- Message Chains(过度耦合的消息链)
- Middle Man(中间人)
- Inappropriate Intimacy(狎昵关系)
- Alternative Classes with Different Interfaces(异曲同工的类)
- Incomplete Library Class(不完美的库类)
- Introduce Foreign Method(162)
- Introduce Local Extension(164)
- Data Class(纯稚的数据类)
- Refused Bequest(被拒绝的遗赠)
- Replace Inheritance with Delegation(352)
- Comments(过多的注释)
网友评论