0
Отвечено
Рефакторинг: Замена переменной вызовом метода
Добрый день!
Начал читать рефакторинг и сразу вопрос :)
В "Замена переменной вызовом метода" предлагается заменить код:
double calculateTotal() {
double basePrice = quantity * itemPrice;
if (basePrice > 1000) {
return basePrice * 0.95;
}
else {
return basePrice * 0.98;
}
}
на
double calculateTotal() {
if (basePrice() > 1000) {
return basePrice() * 0.95;
}
else {
return basePrice() * 0.98;
}
}
double basePrice() {
return quantity * itemPrice;
}
На мой взгляд предложение мягко говоря не идеальное, т.к. в отрефакторенном коде вычисления происходят в 2 раза больше. Я понимаю, что умножение - это не тот случай, когда надо экономить :) Но ведь это только пример, а в реальной жизни в этой выделенной функции будет запрос к базе данных.
Ответ
Ответ
Отвечено
Здравствуйте, Вадим!
Спасибо за вопрос! Так как мне его уже задавали, позволю себе сослаться на предыдущие ответы:
https://feedback.refactoring.guru/communities/3/topics/472-replace-temp-with-query-question
Дайте мне знать, если требуется что-то добавить.
Сервис поддержки клиентов работает на платформе UserEcho
Здравствуйте, Вадим!
Спасибо за вопрос! Так как мне его уже задавали, позволю себе сослаться на предыдущие ответы:
https://feedback.refactoring.guru/communities/3/topics/472-replace-temp-with-query-question
https://feedback.refactoring.guru/communities/1/topics/30-dopolnenie-pro-replace-temp-with-query?lang=uk
Дайте мне знать, если требуется что-то добавить.