Обзор темы [Рефакторинг кода]

Избавление от метода с помощью объекта метода

(Replace Method with Method Object)

Имеется большой метод, использующий локальные переменные таким образом, что не применить Извлечение Метода.

Поместить метод в отдельный объект таким образом, чтобы локальные переменные стали полями этого объекта. Далее этот метод можно разложить на более мелкие в рамках этого объекта.

class Order …

double price() {

double primaryBasePrice;

double secondaryBasePrice;

double tertiaryBasePrice;

// long computation

}

Если в методе напутано столько локальных переменных, что не применить Извлечение метода, то можно попытаться использовать Замену локальной переменной вызовом метода. Если и это не получается, надо вынести метод в отдельный объект, объявить локальные переменные полями этого объекта и применить к нему Извлечение метода.