This repository has been archived on 2022-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
patterns/strategy
Alexander Zhirov 8284e0f476 strategy 2022-11-10 00:22:13 +03:00
..
README.md strategy 2022-11-10 00:22:13 +03:00
app.d strategy 2022-11-10 00:22:13 +03:00
duck.d strategy 2022-11-10 00:22:13 +03:00
flybehavior.d strategy 2022-11-10 00:22:13 +03:00
quackbehavior.d strategy 2022-11-10 00:22:13 +03:00

README.md

Стратегия

Инкапсуляция алгоритма в объект — это назначение паттерна стратегия.

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

Код

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

Принципы

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