首页 > 其他 > 详细

《重构:改善既有代码的设计》读书笔记4 简化条件表达式

时间:2020-03-17 14:23:55      阅读:75      评论:0      收藏:0      [点我收藏+]

(1)Decompose Conditional 分解条件表达式

你有一个复杂的条件(if-then-else)语句。从if、else、else三个段落中分别提炼出独立函数。

1 if(data.before(SUMMER_START)||data.after(SUMMER_END))
2     charge=quantity*_winterRate+_winterServiceCharge;
3 else charge=quantity*_summerRate;
4 
5 -->
6 
7 if(notSummer(date))
8     charge=winterCharge(quantity);
9 else charge=summerCharge(quantity);

复杂的条件逻辑是导致复杂度上升的地点之一,编写代码来检查不同的条件分支、昨不同的事会得到一个很长的函数。大型函数自身就会使代码的可读性下降,而条件逻辑会使代码更难阅读, 将每条分支分解成新函数,可以突出条件逻辑。

 

(2)Consolidate Conditional Expression 合并条件表达式

一些列测试条件得到相同的结果,将这些测试合并为一个表达式。

double disabillityAmount(){
    if(seniority<2)  return 0;
    if(isPartTime) return 0;
}

-->
double disabillityAmount(){
if(seniority<2||isPartTime)
    return 0;
}

-->
double double disabillityAmount(){
if(function())
return 0
}

(3)Consolidate Duplicate Conditional Fragments(合并重复的条件片段)

在条件表达式每个分支上有着相同的一段代码,将这段重复代码搬移到条件表达式之外。如果try 和catah 有重复代码 移到final区域。

if(judge()){
    total = price * 0.5;
    send();
}
else{
    total = price * 0.8;
    send();
}

==>
if(judge()){
    total = price * 0.5;
}
else{
    total = price * 0.8;
}

send()

《重构:改善既有代码的设计》读书笔记4 简化条件表达式

原文:https://www.cnblogs.com/zdcsmart/p/12510205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!