1. 数据泥团
定义
:总是成块出现的相同数据项,包括多个类中相同的字段、多个方法签名中相同参数等。
影响
:成块出现的重复参数过多,影响可维护性,增加理解成本。
重构目标
:减少相同的字段及入参,缩短入参列,简化函数调用。
重构方法
:
- 提炼类
- 引入参数对象
- 保持对象完整性
常见特点
:
- 方法参数过多
- 成块的参数总是重复出现在多个类字段、方法签名中
重构中可能用到的快捷键操作
:
操作 | 快捷键 |
---|---|
提炼类 | Ctrl + Alt + Shift + T -> Extract Delegate 鼠标右键 -> refactor -> Extract Delegate |
引入参数对象 | Ctrl + Alt + Shift + T -> Introduce Parameter Object 鼠标右键 -> refactor -> Introduce Parameter Object |
抽取方法 | Ctrl + Alt + M |
内联 | Ctrl + Alt +N |
实例方法搬移 | F6 |
提取字段/参数/变量 | Ctrl + Alt + F/P/V |
2. 基本类型偏执
定义
:应该抽象建模的概念,还是使用基本类型表示。
影响
:暴露过多细节,代码内聚性差,可读性不高。
重构目标
:消除基本类型,提升代码可修改性、内聚性、可读性。
重构方法
:
- 对象取代基本类型
- 子类取代多态取代条件表达式类型
- 提炼类
- 引入参数对象
常见特点
:
- 使用基本类型而非对象
- 暴露过多细节未提炼封装
- 字符串的条件表达式
重构中可能用到的快捷键操作
:
操作 | 快捷键 |
---|---|
引入参数对象 | Ctrl + Alt + Shift + T -> Introduce Parameter Object 鼠标右键 -> refactor -> Introduce Parameter Object |
创建子类 | Alt + Enter -> Create subclass |
工厂方法代替构造方法 | Replace Constructor With Factory Method |
提炼接口 | Ctrl + Alt + Shift + T -> Extract Interface 鼠标右键 -> refactor -> Extract Interface |
上移成员方法、变量 | Pull Member Up |
下移成员方法、变量 | Push Member Down |
声明:本文仅用于学习交流。