目录

卫语句简介和使用

目录

近期在看《阿里巴巴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 "正常";
    }