Декомпозиция условного оператора (Decompose Conditional)
У вас есть сложное условное выражение (if-then-else).
Выделите условие в отдельный метод, затем следующий кусок и все оставшиеся.
if (date.before (SUMMER_START) || date.after(SUMMER_END))
charge = quantity * _winterRate + _winterServiceCharge;
else charge = quantity * _summerRate;
if (notSummer(date))
charge = winterCharge(quantity);
else charge = summerCharge (quantity);
Более детальную информацию смотрите на странице 242 книги Рефакторинг.
Оригинальная версия.
Copyright © 1999-2003, Martin Fowler.
|