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 e9712fdf28 change the flight in strategy 2022-11-10 00:29:18 +03:00
..
README.md strategy 2022-11-10 00:22:13 +03:00
app.d change the flight in strategy 2022-11-10 00:29:18 +03:00
duck.d change the flight in strategy 2022-11-10 00:29:18 +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, которым делегируются выполнение соответствующих операций. Подобные связи между двумя классами означают, что используется механизм композиции. Поведение не наследуется, а предоставляется правильно выбранным объектом.

Принципы

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