Паттерн «Стратегия» в объектно-ориентированном программировании целесообразно использовать в случаях, когда нужно использовать разные вариации какого-то алгоритма внутри одного объекта и есть необходимость менять его поведение во время выполнения программы. 25
Некоторые ситуации, в которых применяют этот паттерн:
- Сортировка. 13 Разные алгоритмы сортировки можно вынести в отдельные стратегии и передать объекту, который нуждается в сортировке. 1
- Валидация. 13 Различные правила валидации можно вынести в отдельные стратегии и передать объекту, который нуждается в проверке. 1
- Форматирование текста. 1 Разные стратегии форматирования можно вынести в отдельные стратегии и передать объекту, который нуждается в форматировании. 1
- Доступ к базе данных. 1 Разные стратегии доступа к базе данных можно вынести в отдельные стратегии и передать объекту, который нуждается в доступе к данным из разных источников. 1
- Стратегия оплаты. 1 Разные методы оплаты можно вынести в отдельные стратегии и передать объекту, который нуждается в обработке платежей. 1
Также паттерн «Стратегия» полезен, когда есть множество похожих классов, отличающихся только некоторым поведением, или когда не хочется обнажать детали реализации алгоритмов для других классов. 2