1.重复的代码 (Duplicated Code)
重复代码是最常见的异味,往往是由于Copy & Paste 造成的。
重构方法:
- 重复代码在同一个类中的不同方法中,则直接提炼为一个方法
- 如果重复代码在两个互为兄弟的子类中,则将重复的代码提到父类中
- 如果代码类似,则将相同部分构成单独函数,或者用 Template Method 设计模式
- 重复代码出现在不相干的类中,则将代码提炼成函数或者放在独立的类中
- 2.过长的函数(Long Method)
是面向结构程序开发带来的 “后遗症”,过长的函数降低可读性。
重构方法:
- 将独立的功能提炼成新函数
- 3. 过大类(Large Class)
过大的类使得责任不清晰。
重构方法
- 将过大类的功能拆分成多个功能单一的小类
- 4. 过长的参数列(Long Parameter List)
过长的参数列难以理解,而且容易传错参数。
重构方法:
- 将参数列表用参数对象替换
5. 发散式变化(Divergent Change)
一个类由于不同的原因而被修改。
重构方法:
- 将类拆分成多个,每个类只因为一种变化而修改