代码中条件表达式随处可见,简化条件表达式能够使代码阅读者不用深层理解代码的复杂逻辑,达到傻瓜都能读懂代码。这就要求将条件表达式简化成傻瓜都能理解的语义,由此取函数名和变量名的重要性不言而喻了(面向对象最重要步骤之一就是取名,类名,接口名,方法名,变量名),通过名字达到语义联系和增强语义特性目的。
public double disabilityAmount() {
if (seniority < 2) return 0.0;
if (monthsDisabled > 12) return 0.0;
if (isPartTime) return 0.0;
// compute the disability amount
}
public double disabilityAmount() {
if (isNotEligibleForDisability()) return 0.0;
// compute the disability amount
}
private boolean isNotEligibleForDisablity() {
return (seniority < 2) || (monthsDisabled > 12) ||
(isPartTime);
}
第一种写法阅读者必须了解三种条件判断的意义,而第二种只需了解一种判断情况即可,短小精悍的函数带来的好处多多,暂时不考虑性能方面的影响。