Избавление от метода с помощью объекта метода
Имеется большой метод, использующий локальные переменные таким образом, что не применить Извлечение Метода.
Поместить метод в отдельный объект таким образом, чтобы локальные переменные стали полями этого объекта. Далее этот метод можно разложить на более мелкие в рамках этого объекта.
class Order … double price() { double primaryBasePrice; double secondaryBasePrice; double tertiaryBasePrice; // long computation … }
Если в методе напутано столько локальных переменных, что не применить Извлечение метода, то можно попытаться использовать Замену локальной переменной вызовом метода. Если и это не получается, надо вынести метод в отдельный объект, объявить локальные переменные полями этого объекта и применить к нему Извлечение метода.
Комментарии