DevPrep

Все темы › Шаблоны проектирования

Strategy: как подменять алгоритм без if/switch по всему коду?

Middle PRO

Суть

Strategy — семейство взаимозаменяемых алгоритмов за общим интерфейсом. Клиент получает стратегию снаружи и просто вызывает её, не зная, какая именно пришла. Вместо switch userType в десяти местах остаётся одна точка выбора (фабрика, конфиг, feature flag в composition root), а остальной код полиморфен.

В Swift у стратегии три формы: протокол — когда у алгоритма есть параметры, состояние, зависимости или несколько методов; замыкание — одна функция без конфигурации; enum — набор вариантов закрыт и известен заранее.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store