在条件表达式的每个分支上有着相同的一段代码。将这段重复代码搬移到条件表达式之外。
有时你会发现,一组条件表达式的所有分支都执行了相同的某段代码。如果是这样,你就应该将这段代码搬移到条件表达式外面。这样,代码才能更清楚地表明哪些东西随条件的变化而变化、哪些东西保持不变。
你可能遇到这样的代码:
if (isSpecialDeal()) {total = price * 0.95;send();}else {total = price * 0.98;send();}
由于条件表达式的两个分支都执行了send()函数,所以我应该将send()移到条件表达式的外围
if (isSpecialDeal())total = price * 0.95;elsetotal = price * 0.98;send();
我们也可以使用同样的手法来对待异常。如果在try区段内可能引发异常的语句之后,以及所有catch区段之内,都重复执行了同一段代码,就可以将这段重复代码移到final区段。