0
Answered
Рефакторинг: Замена переменной вызовом метода
Добрый день!
Начал читать рефакторинг и сразу вопрос :)
В "Замена переменной вызовом метода" предлагается заменить код:
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 раза больше. Я понимаю, что умножение - это не тот случай, когда надо экономить :) Но ведь это только пример, а в реальной жизни в этой выделенной функции будет запрос к базе данных.
Answer
Answer
Answered
Здравствуйте, Вадим!
Спасибо за вопрос! Так как мне его уже задавали, позволю себе сослаться на предыдущие ответы:
https://feedback.refactoring.guru/communities/3/topics/472-replace-temp-with-query-question
Дайте мне знать, если требуется что-то добавить.
Customer support service by 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
Дайте мне знать, если требуется что-то добавить.