patterns/strategy
Alexander Zhirov 56c278cb44 new 2022-12-05 10:38:19 +03:00
..
README.md new 2022-12-05 10:38:19 +03:00
app.d new 2022-12-05 10:38:19 +03:00
duck.d new 2022-12-05 10:38:19 +03:00
flybehavior.d new 2022-12-05 10:38:19 +03:00
quackbehavior.d new 2022-12-05 10:38:19 +03:00
scheme-1.png new 2022-12-05 10:38:19 +03:00

README.md

Стратегия

Поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.

Инкапсуляция алгоритма в объект — это назначение паттерна Стратегия. Использует композицию. Определяет семейство алгоритмов и обеспечивает их взаимозаменяемость. Инкапсуляция позволяет легко использовать разные алгоритмы на стороне клиента.

Код

Каждая утка СОДЕРЖИТ экземпляры FlyBehavior и Quack­Behavior, которым делегируются выполнение соответствующих операций. Подобные связи между двумя классами означают, что используется механизм композиции. Поведение не наследуется, а предоставляется правильно выбранным объектом.

Принципы

  • Инкапсулировать то, что изменяется
  • Отдавать предпочтение композиции перед наследованием
  • Программировать на уровне интерфейсов, а не реализации

Схемы

scheme-1