我有时在想,下面两种方式哪一种更好的风格(如果有的话)?如果保护条件未满足,立即返回是否更好,还是只有当保护条件得到满足后才执行其他操作?
为了论证,假设保护条件是一个简单的测试,返回一个布尔值,例如检查元素是否在集合中,而不是可能通过抛出异常影响控制流程的内容。还假设方法/函数足够短,不需要编辑器滚动。
// Style 1
public SomeType aMethod() {
SomeType result = null;
if (!guardCondition()) {
return result;
}
doStuffToResult(result);
doMoreStuffToResult(result);
return result;
}
// Style 2
public SomeType aMethod() {
SomeType result = null;
if (guardCondition()) {
doStuffToResult(result);
doMoreStuffToResult(result);
}
return result;
}