教你如何非常帅气的改写“if-else”
351 [ 厂家供稿 ]

if-else,这是个再正常不过的coding习惯,当我们代码量小的时候用来做条件判断是再简单不过的了。但对于优秀程序员来说,这却不是好代码。不信你往下看…

1. 卫语句提前return

假设有如下代码

image.png

通过对判断条件取反,代码在逻辑表达上会更加清晰

image.png

2. 使用Optional简化if判空

2.1 简化1级判空

假设有如下代码

image.png

使用Optional后

image.png

image.png

image.png

image.png

具体的策略对象可以放在一个Map中,优化后的实现类似如下

image.png

3.1.1 静态表

image.png

image.png

image.png

3.2 枚举

采用多态会额外产生很多策略类,如果我们已经预先将petType定义成了枚举,就会发现可以把Strategy中的invoke()方法放到枚举中,从而完成了一种映射关系。

image.png

这样在调用时的代码就类似如下:

image.png

image.png

Copyright © 2020 科技见闻网 版权所有