重构第九章
3.Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
在条件式的每个分支上有着相同的一段代码。将这段重复代码搬移到条件式之外。
Example:
if(isSpecialDeal()) {
total = price * 0.95;
send();
} else {
total = price * 0.98;
send();
}
End:
if(isSpecialDeal()) {
total = price * 0.95;
} else {
total = price * 0.98;
}
send();
Conclusion:
由于两个分支都执行了send()函数,即可以将send()移到条件式的外围。这样,代码能更加清楚的表明那些东西随着条件的变化而变化,那些东西保持不变。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论