Паттерн «Стратегия» — это поведенческий шаблон проектирования, который определяет семейство схожих алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость.                                                                          ru.wikipedia.org                                                                                               metanit.com                       
 Используется в случаях, когда в одном и том же месте в зависимости от текущего состояния системы (или её окружения) должны использоваться различные алгоритмы.                                                                          ru.wikipedia.org                      
 Некоторые ситуации, когда применяется паттерн «Стратегия»:
  - когда есть несколько родственных классов, которые отличаются поведением.                                                                          metanit.com                       Можно задать один основной класс, а разные варианты поведения вынести в отдельные классы и при необходимости их применять;                                                                          metanit.com                      
- когда необходимо обеспечить выбор из нескольких вариантов алгоритмов, которые можно легко менять в зависимости от условий;                                                                          metanit.com                      
- когда необходимо менять поведение объектов на стадии выполнения программы;                                                                          metanit.com                      
- когда класс, применяющий определённую функциональность, ничего не должен знать о её реализации.                                                                          metanit.com