Понимание паттернов
Strategy — это поведенческий паттерн, позволяющий выбирать реализацию алгоритма в зависимости от контекста. Он скрывает детали реализации за интерфейсом.
Паттерн Strategy нужен, когда в системе есть несколько алгоритмов, выполняющих одну и ту же задачу, но с разными реализациями. Вместо условных конструкций (if, switch) создаются реализации одного интерфейса и подставляются в рантайме.
Применяется, например, при поддержке разных протоколов (HTTP, gRPC, FTP) или при переключении логики в зависимости от конфигурации. Это делает код расширяемым, читаемым и удобным для тестирования.