Стратегия

Стратегия

Юрий Логинов
Позволяет определить семейство схожих алгоритмов, с целью последующей инкапсуляции их в отдельных классах, закрытые интерфейсом. В процессе выполнения данные алгоритмы можно заменять "на лету".

Применять:

  • Когда нужно использовать разные вариации алгоритма внутри одного объекта
  • Если есть множество похожих классов, отличающихся лишь некоторым поведением. Тогда это поведение можно вынести в отдельный интерфейс, а классы свести к одному.
  • Когда не нужно отображать детали реализации алгоритмов другим классам.
  • Когда различные вариации алгоритмов реализованы в виде условных операторов.

Плюсы:

  • Горячая замена алгоритмов "на лету".
  • Изолирует алгоритмы от других классов.
  • Уход от наследования.
  • Реализует принцип O/C

Минусы:

  • Усложняет программу за счет новых классов
  • Клиент должен понимать разницу между разными вариантами алгоритмов.


Report Page