读码出高效时,提到了使用卫语句实现超过3层的if-else的逻辑判断代码
简单来说就是将多层if-else逻辑拆分为多个if语句级联,拆分得到的if语句就是卫语句。
例如:
public void doWork() {
if (isBusy()) {
// Busy状态下的操作
return;
}
if (isDown()) {
// Down
return;
}
if (isSleep()) {
// Sleep
return;
}
// doWork
return;
}
将原来的逻辑判断提取为一个逻辑判断的方法,返回一个布尔类型值,作为if语句的判断条件。这样做的好处是多个条件分支更加清晰,逻辑判断封装为一个规范命名的方法时可以通过方法名迅速了解if语句内代码的含义。