intermediate
Strategy
Выбирайте interchangeable algorithms через stable interface, когда policy меняется независимо от caller workflow.
Strategy инкапсулирует взаимозаменяемые алгоритмы за общим интерфейсом: workflow caller стабилен, политика меняется — pricing, sorting, compression, fraud scoring, export formats. Выбор в рантайме через конфигурацию или DI.
На интервью: сравните Strategy с Template Method и с параметрами-функциями. Тестирование каждой strategy изолированно.
Типовые ошибки: strategies тайно зависят от global state; enum switches рядом со strategy map; Strategy для разовых conditionals.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Caller зависит только от strategy interface.
- Каждая strategy покрыта unit-тестами.
- Registration или DI выбирает implementation.
- Документируйте приоритет выбора strategy.