4.5 以卫语句取代嵌套条件式

【1】原代码函数

 1 double GetPayAmount()
 2 {
 3     double result;
 4     if (IsDead())
 5     {
 6         result = DeadAmount();
 7     }
 8     else
 9     {
10         if (IsSeparated())
11         {
12             result = SeparatedAmount();
13         }
14         else
15         {
16             if (IsRetired())
17             {
18                 result = RetiredPayAmount();
19             }
20             else
21             {
22                 result = NormalPayAmount();
23             }
24         }
25     }
26 
27     return result;
28 }

【2】以卫语句取代嵌套条件式spa

 1 double getPayAmount()
 2 {
 3     if (isDead())
 4     {
 5         return deadPayAmount();
 6     }
 7     if (isSeparated())
 8     {
 9         return separatedPayAmount();
10     }
11     if (isRetired())
12     {
13         return retiredPayAmount();
14     }
15 
16     return normalPayAmount();
17 }

【3】总结code

函数中的条件逻辑令人难以看清正常的分支执行路径。使用卫语句表现全部特殊状况。orm

谓卫语句,若是某个条件极其罕见,就应该单独检查该条件,并在该条件为真时马上从函数中返回。这样的单独检查经常被称为“卫语句”。blog

 

Good Good Study, Day Day Upget

顺序 选择 循环 总结class

相关文章
相关标签/搜索