Вопрос проверяет понимание полиморфизма и принципов расширяемой архитектуры.
if/switch заменяются полиморфизмом.
Каждая ветка логики оформляется в отдельную реализацию интерфейса.
Выбор реализации происходит через Map.
Добавление новой логики не требует изменения существующего кода.
Это соответствует принципу Open–Closed.
Такой подход особенно полезен в бизнес-логике.
есть общий интерфейс
каждая реализация отвечает за свою логику
выбор делается по ключу
public interface Handler {
void handle();
}
class AHandler implements Handler {
public void handle() { }
}
class BHandler implements Handler {
public void handle() { }
}
MapMap<String, Handler> handlers = Map.of(
"A", new AHandler(),
"B", new BHandler()
);
handlers.get(type).handle();
нет условных операторов
легко добавлять новые варианты
код тестируем и читаем
Интерфейсы + мапы — базовый архитектурный приём для устранения if/switch.