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

Замена локальной переменной вызовом метода

(Replace Temp with Query)

Локальная переменная используется для хранения результата выражения.

Вынести выражение в отдельный метод и заменить все ссылки на переменную вызовом этого метода.

double basePrice = _quantity * _itemPrice;

if (basePrice > 1000)

return basePrice * 0.95

else

return basePrice * 0.98

if (basePrice > 1000)

return basePrice() * 0.95

else

return basePrice() * 0.98

double basePrice() {

return _quantity * _itemPrice;

}

При замене переменной на вызов метода любой другой метод в классе сможет воспользоваться ее значением – этот рефакторинг зачастую является необходимым шагом перед Извлечением метода, дабы избежать обращения к локальным переменным, находящимся в теле другого метода.

Иногда при использовании этого рефакторинга надо вначале применить Разделение локальной переменной или Разделение на аксессор и модификатор.