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 afb0c148a1 template method: adding sort 2022-11-17 10:16:54 +03:00
..
README.md template method: adding sort 2022-11-17 10:16:54 +03:00
app.d change the flight in strategy 2022-11-10 00:29:18 +03:00
duck.d add Java sources 2022-11-11 12:54:25 +03:00
flybehavior.d strategy 2022-11-10 00:22:13 +03:00
quackbehavior.d strategy 2022-11-10 00:22:13 +03:00
scheme-1.png added schemes 2022-11-14 15:13:48 +03:00

README.md

Стратегия

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

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

Код

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

Принципы

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

Схемы

scheme-1