近期在看《阿里巴巴Java开发手册》,发现了一个之前没接触过的词–卫语句。所谓的卫语句,实际上指的就是在开发复杂的业务逻辑时,出现的大量if()…else if()……else{}结构的逻辑判断时,把这些逻辑判断换为多个if语句,若有某个极其罕见的条件,先单独检查该条件,并在该条件为真时立刻从函数中返回,避免影响后续的逻辑判断。请看以下的例子:
业务逻辑场景:有这么一个逻辑通过一个商品的id获取对应的商品状态类型,然后有一个方法来根据这个类型转化对应的状态。别吐槽为什么不用switch,只是举个例子。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
private int type = getType(id);
public String getTypeName(int type) {
String name;
if (type == 0) {
name = "过期";
} else {
if (type == 1) {
name = "缺货";
} else {
if (type == 2) {
name = "扣押";
} else {
name = "正常";
}
}
}
return name;
}
|
以上代码用卫语句的形式来写可换为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
private int type = getType(id);
public String getTypeName(int type) {
String name;
if (type == 0) {
return "过期";
}
if (type == 0) {
return "过期";
}
if (type == 0) {
return "缺货";
}
if (type == 0) {
return "扣押";
}
return "正常";
}
|