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.