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

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