合并重复的条件片段
问题
相同的代码可以在条件的所有分支中找到。
解决方案
将代码移到条件语句之外。
之前
if (isSpecialDeal()){合计=价格* 0.95;send ();} else{合计=价格* 0.98;send ();}
后
if (isSpecialDeal()){合计=价格* 0.95;} else{合计=价格* 0.98;}发送();
之前
if (IsSpecialDeal()){合计=价格* 0.95;Send ();} else{合计=价格* 0.98;Send ();}
后
if (IsSpecialDeal()){合计=价格* 0.95;} else{合计=价格* 0.98;}发送();
之前
if (isSpecialDeal()) {$total = $price * 0.95;send ();} else {$total = $price * 0.98;send ();}
后
if (isSpecialDeal()) {$total = $price * 0.95;} else {$total = $price * 0.98;}发送();
之前
if isSpecialDeal(): total = price * 0.95 send() else: total = price * 0.98 send()
后
if isSpecialDeal(): total = price * 0.95 else: total = price * 0.98 send()
之前
if (isSpecialDeal()){合计=价格* 0.95;send ();} else{合计=价格* 0.98;send ();}
后
if (isSpecialDeal()){合计=价格* 0.95;} else{合计=价格* 0.98;}发送();
为什么重构
在条件的所有分支中都可以找到重复的代码,这通常是条件分支中代码演化的结果。团队发展可能是一个促成因素。
好处
- 代码重复数据删除。
如何重构
如果复制的代码位于条件分支的开头,则将代码移动到条件分支之前的位置。
如果代码在分支的末尾执行,则将其放在条件语句之后。
如果重复的代码随机地位于分支中,首先尝试将代码移动到分支的开头或结尾,这取决于它是否改变后续代码的结果。
如果合适,并且重复的代码长于一行,请尝试使用提取方法.