文章目录
1. 重复的 Switch
定义
:在不同的地方反复使用同样的 switch 逻辑。
影响
:影响可维护性:每当需要增加一个选择分支时,必须找到所有的 Switch,并逐一修改。
重构目标
:消除重复的 Switch,提升代码可修改/可扩展能力。
重构方法
:
- 多态取代条件表达式。1)多态 + 工厂:参考工厂模式;2)多态+提供不同实现类:参考List——ArrayList、LinkedList等
常见特点
:
- 同样的 Switch 逻辑反复出现
重构中可能用到的快捷键操作
:
操作 | 快捷键 |
---|---|
创建子类 | Alt + Enter -> Create subclass |
用工厂方法替换构造方法 | Replace Constructor with Factory Method |
多态返回子类对象 | 手动 |
方法搬移 | F6 |
静态方法变为实例方法 | Ctrl + Alt + Shift + T -> Convert To Instance Method 鼠标右键 -> refactor -> Convert To Instance Method |
方法下移到子类 | Push Member Down |
修改可见性 | Alt + Enter -> Make xxx protected/public/… |
2. 循环语句
定义
:针对集合或数组进行简单分组、过滤、映射、遍历操作,采用传统的 for 循环语句进行遍历。(注:并非所有的 for 都是不好的,基本功能可以使用 stream 更简洁)。
影响
:影响代码复杂度,代码不够简洁、直观,不容易理解代码意图。并发效率有时不高。
重构目标
:使用 stream 替代 for 循环,简化代码,也更直观易懂。
重构方法
:
- 针对集合或数组分组、过滤、映射、去重、查找、统计等使用 stream 替代
常见特点
:
- 采用 for 循环实现简单分组、过滤、映射、去重、查找、统计等功能。
重构中可能用到的快捷键操作
:
操作 | 快捷键 |
---|---|
IDEA 重构提示 | Alt + Enter —— 根据提示选择替换方法 |
内联 | Ctrl + Alt + N |
声明:本文仅用于学习交流。