教你如何非常帅气的改写“if-else”

if-else,这是个再正常不过的coding习惯,当我们代码量小的时候用来做条件判断是再简单不过的了。但对于优秀程序员来说,这却不是好代码。不信你往下看…
1. 卫语句提前return
假设有如下代码
通过对判断条件取反,代码在逻辑表达上会更加清晰
2. 使用Optional简化if判空
2.1 简化1级判空
假设有如下代码
使用Optional后
具体的策略对象可以放在一个Map中,优化后的实现类似如下
3.1.1 静态表
3.2 枚举
采用多态会额外产生很多策略类,如果我们已经预先将petType定义成了枚举,就会发现可以把Strategy中的invoke()方法放到枚举中,从而完成了一种映射关系。
这样在调用时的代码就类似如下:
-
352 互联网
-
388 互联网
-
385 厂家供稿
-
319 联想
-
367 深圳之窗
-
458 厂家供稿