简化条件表达式之合并重复的条件片段(Comsolidate Duplicate Conditional Fragments)

在条件表达式的每个分支上有着相同的一段代码。将这段重复代码移到条件表达式之外。

动机:一组条件表达式的所有分支都执行了相同的某段代码。你应该将这段代码搬移到表达式外面。这样,代码才能更清楚地表明哪些东西随条件变化而变化、哪些东西保持不变。

做法:1、鉴别出“执行方式不随变化而变化”的代码。

       2、如果这些共通代码位于条件表达式起始处,就将它移到条件表达式之前。

       3、如果这些共通代码位于条件表达式的尾端,就它移到条件表达式之后。

       4、如果这些共通代码位于条件表达式的中段,就需要观察共通代码之前或之后的代码是否改变了什么东西。如果的确有所改变,应该首先将共通代码向前或向后移动,移至条件表达式的起始处或尾端,再以前面所说的办法来处理。

       5、如果共通代码不止一条语句,应该首先使用 Extract Method(提炼函数)将共通代码提炼到一个独立函数之后,再以前面所说的办法来处理。

 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();

 

posted on 2019-12-04 11:32  低调的小郭  阅读(517)  评论(0编辑  收藏  举报