Объединение дублирующихся фрагментов в условных операторах.
Одинаковый фрагмент кода находится во всех ветках условного оператора.
Вынесите его за рамки оператора.
##Example
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();##Why Refactor
Дублирующий код находится внутри всех веток условного оператора. Зачастую это является результатом эволюции кода внутри веток оператора, тем более, если над кодом работало несколько человек.
##Benefits
- Убивает дублирование кода.
##How to Refactor
-
Если дублирующие участки находятся вначале веток оператора, вынесите их перед условным оператором.
-
Если такой код выполняется в конце веток, поместите его после условного оператора.
-
Если дублирующий код расположен случайным образом внутри веток, вам нужно для начала попытаться передвинуть его в начало или в конец ветки, в зависимости от того, меняет ли он результат последующего кода.
-
Дублирующий фрагмент кода более одной строки можно попытаться извлечь в новый метод, если в этом есть смысл.