1. 过大的类
定义:类想做事情太多,包含过多的字段,方法,代码行。
影响:代码重复、混乱,实例过多,进而导致其他代码坏味道。
重构目标:分解类,保证类的职责单一。
重构方法:
- 提取类
- 抽取子类
- 抽取接口/超类
常见特点:
- 类包含太多的字段、方法
- 类职责不单一
- 很多属性和方法只在特殊场景中使用
重构中可能用到的快捷键操作:
| 操作 | 快捷键 |
|---|---|
| 引入参数对象 | Ctrl + Alt + Shift + T -> Introduce Parameter Object 鼠标右键 -> refactor -> Introduce Parameter Object |
| 抽取方法引入参数对象 | Ctrl + Alt + MCtrl + Alt + Shift + T -> Introduce Parameter Object 鼠标右键 -> refactor -> Introduce Parameter Object |
| 提取字段 | Ctrl + Alt + F |
| 提炼接口 | Ctrl + Alt + Shift + T -> Extract Interface 鼠标右键 -> refactor -> Extract Interface |
| 工厂方法代替构造方法 | Replace Constructor With Factory Method |
| 上移成员方法、变量 | Pull Member Up |
| 下移成员方法、变量 | Push Member Down |
| 提取超类 | Ctrl + Alt + Shift + T -> Extract Superclass 鼠标右键 -> refactor -> Extract Superclass |
2. 异曲同工的类
定义:两个类功能一致,却有不同的定义(方法/接口)。
影响:相关的业务逻辑可能会重复实现,或分布到不同类中,代码难维护;某个逻辑的修改需要修改多处,容易滋生重复代码、霰弹式修改。
重构目标:统一接口、相同的功能只实现一份。
重构方法:
- 函数改名
- 上移函数
- 添加参数
- 函数参数化
- 提炼超类
- 移除子类
常见特点:
- 类名、函数名类似
- 大部分逻辑一样
- 存在少量差异
重构中可能用到的快捷键操作:
| 操作 | 快捷键 |
|---|---|
| 改函数名 | Shift + F6 |
| 改函数签名 | Ctrl + F6 |
| 搬移函数 | F6 |
| 提取超类 | Ctrl + Alt + Shift + T -> Extract Superclass 鼠标右键 -> refactor -> Extract Superclass |
| 上移、下移函数 | Pull Member Up/Push Member Down |
| 内联函数 | Ctrl + Alt + N |
| 删除函数 | Alt + Del |
声明:本文仅用于学习交流。
493

被折叠的 条评论
为什么被折叠?



