概念
卫语句就是把复杂的条件表达式拆分成多个条件表达式,减少嵌套。嵌套了好几层的if -else语句,转换为多个if语句,实现它的逻辑,这多条的if语句就是卫语句。
卫语句将某些关键条件优先判断,简化程序流程走向。卫语句往往用于对 if 条件嵌套代码的优化。
在《阿里巴巴Java开发手册》中强制规定:超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式,解决代码中判断分支嵌套的问题,这是逆向思维的体现。
举例
原方式
public void test(int id) {
if (id == 1) {
System.out.print("id1: "+id);
} else {
if (id == 2) {
System.out.print("id2: "+id);
} else {
if (id == 3) {
System.out.print("id3: "+id);
}
}
}
}
卫语句方式
public void test(int id) {
if (id == 1) {
System.out.print("id1: "+id);
}
if (id == 2) {
System.out.print("id2: "+id);
}
if (id == 3) {
System.out.print("id3: "+id);
}
}