重构读书笔记-9_2-Consolidate_Condition

2019-07-09  本文已影响0人  MR_Model

重构第九章

2.Consolidate Conditional Expression(合并条件式)

你有一系列条件测试,都得到相同的结果。将这些测试合并为一个条件式,并将这个条件式提炼成为一个独立函数。

Example:

double disabilityAmount() {
    if(_seniority < 2) return 0;
    if(_monthsDisabled > 12) return 0;
    if(_isPartTime) return 0;
    // compute the disability amount    
}

Analyse:
上述示例中,函数中有一系列的条件检查语句,他们完成的都是同样的事情,对于这个代码,我们可以合并为一个条件式,之后使用Extract Method(提炼函数)的方法,提炼出一个易读的函数。

End:

double disabilityAmount() {
    if(isNotEligibleForDisability()) return 0
    // compute the disability amount    
    ...
}
boolean isNotEligibleForDisability() {
    return ((_seniority < 2) || (_monthsDisabled > 12) || (_isPartTime));
}

Conclusion:

Consolidate Conditional Expression(合并条件式)将所有做同一件事情的条件语句合并到一起,保证原先逻辑不会变动的基础上,对于厘清代码的真实意义有很大的作用。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
上一篇 下一篇

猜你喜欢

热点阅读