Шаблон проектирования Стратегия (Strategy) — это паттерн, который позволяет определять семейство алгоритмов, инкапсулировать каждый из них и делать их взаимозаменяемыми. То есть данный паттерн позволяет выбирать один из алгоритмов в зависимости от конкретной ситуации.
Примером может быть программа, которая должна обрабатывать данные различных форматов. Для каждого формата данных нужно иметь свой алгоритм обработки. Стратегия позволяет определить интерфейс для каждого алгоритма и инкапсулировать его в класс. Далее в программе можно выбрать нужный алгоритм в зависимости от типа данных, с которыми нужно работать.
В итоге благодаря использованию шаблона Стратегия, мы получаем гибкую систему, которую легко расширять и поддерживать.