Если логика зависит от фиксированного набора вариантов, не всегда стоит раздувать switch.
Например, сначала код может выглядеть аккуратно:
switch (tariff) {
case PRO -> 10;
case ENTERPRISE -> 20;
default -> 0;
}Но когда правил становится больше, такой switch часто начинает расползаться по проекту.
Для таких случаев можно использовать EnumMap — это Map, оптимизированная специально под enum-ключи:
var discounts = new EnumMap<Tariff, Integer>(Tariff.class);
discounts.put(Tariff.PRO, 10);
discounts.put(Tariff.ENTERPRISE, 20);
А значение можно доставать без лишних условий:
int discount = discounts.getOrDefault(tariff, 0);
Так код становится проще расширять: добавился новый тариф, добавляешь новое правило, а не ищешь все switch по проекту.
Сохрани, если часто превращаешь enum в длинную цепочку условий!
👉 Java Ready | #совет
