1.前言
本文开始为大家介绍一些明知还常犯的Java坏味道,希望对大家有所帮助。
2.总是无法避免的Switch语句
2.1 从一个代码简单例子开始
根据某个状态来判断执行执行哪个动作
switch (status) {
case 1:
if (判断语句1) {
method11();
} else {
method12();
}
break;
case 2:
method2();
break;
case 3:
if (判断语句2) {
method31();
} else {
method32();
}
break;
default:
break;
}
2.2 分析原因
为什么不建议使用switch语句?
根因在于:
- 它实际上是if else的变形
- 很容易有重复代码
- 且可读性、可维护性很差
2.3 解决方案(仅供参考)
如何解决:(这里只介绍一种常见做法)
- 首先根据具体业务实现逻辑进行分析
- 列出多个条件中的动作之间的关联关系,是否符合多态
- 符合多态,具体做法,可参考我的另一篇博文《再次重温《重构改善既有代码的设计》这本书有感》里面的重构万能策略