之前verilog写多了,老是想着if else要完整,否则会产生锁存器。发现现在写代码潜意识里也有这种想法,好逗。。。最近正好看到公司大牛重构代码,优化for循环和if语句,还看到《阿里巴巴Java开发手册》里控制语句里的部分内容,搜了一下发现了《重构 改善既有代码的设计》这本书,发现挺有意思。
卫语句
《阿里巴巴Java开发手册》讲到了卫语句。
《重构 改善既有代码的设计》也讲到了这一点。
Replace Nested Conditional with Guard Clauses
以卫语句取代嵌套条件表达式
对于特殊的不常见的行为或者异常行为,如果将其写入if else的语句中,逻辑就会显得特别复杂。将判断这些情况的条件单独列出来进行检查,如果为真就返回或者抛出异常。这样的单独检查被称为“卫语句”。
这样的代码强调出来某些异常情况,并且和正常的情况进行了分离,更易于理解。如果上面的语句不使用卫语句,就要写成下面的形式,显得不够清晰。
public void today() {
if (isBusy()) {
System.out.println(“change time.”);
}
else if (isFree()) {
System.out.println(“go to travel.”);
}
else {
System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);
}
return;
}