tgoop.com/Java_Iibrary/1801
Create:
Last Update:
Last Update:
В продакшн-коде использование длинных цепочек if-else обходится слишком дорого -> лишний else может привести к падению приложения. Понимание того, чем их заменить, отличает джуна от сеньора.
if (paymentType.equals("creditcard")) {
processCreditCard(payment);
} else if (paymentType.equals("upi")) {
processUpi(payment);
} else if (paymentType.equals("crypto")) {
processCrypto(payment);
}
Если ты всё ещё пишешь подобные громоздкие цепочки if-else в ключевой бизнес-логике, ты фактически держишь свой код в заложниках. Такие конструкции просты, но они не масштабируются.
Когда логика усложняется, код становится трудным для тестирования, расширения и чтения.
Что делают опытные Java-разработчики? Они часто заменяют такие конструкции паттерном Strategy.
Strategy можно сравнить с выбором способа добраться до аэропорта. Вместо одной гигантской функции с if-else на тему «поехать на автобусе», «взять такси» или «сесть на поезд» ты создаёшь отдельную «стратегию» под каждый вариант. Основной код просто выбирает нужную стратегию и говорит: «Поехали».
Вместо бесконечных блоков else if ты:
→ Определяешь интерфейс стратегии (PaymentStrategy).
→ Создаёшь отдельные реализации под каждый случай (CreditCardPayment, UpiPayment).
→ Используешь Map для выбора нужной стратегии во время выполнения:
strategyMap.get(type).processPayment(payment);
Готово. Теперь можно добавлять новую логику, не трогая старый код. Чисто, масштабируемо и поддерживаемо.