Добавление способа доставки требует правок switch в пяти местах
Расчёт стоимости, срока, валидация адреса, печать этикетки и трекинг содержат switch по DeliveryType. Для нового способа «пункт выдачи партнёра» пришлось менять пять файлов, и в одном switch забыли новую ветку — упал трекинг.
Какая структура устойчивее к добавлению способов?
- Стратегия на каждый способ доставки, выбор по типу через DI
- Вынести все switch в один большой класс
- Заменить switch на цепочку if-else
- Хранить логику способов доставки в базе данных
