|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| app.d | ||
| duck.d | ||
| flybehavior.d | ||
| quackbehavior.d | ||
| scheme-1.png | ||
README.md
Стратегия
Инкапсуляция алгоритма в объект — это назначение паттерна стратегия.
Поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.
Код
Каждая утка СОДЕРЖИТ экземпляры FlyBehavior и QuackBehavior, которым делегируются выполнение соответствующих операций. Подобные связи между двумя классами означают, что используется механизм композиции. Поведение не наследуется, а предоставляется правильно выбранным объектом.
Принципы
- Инкапсулировать то, что изменяется
- Отдавать предпочтение композиции перед наследованием
- Программировать на уровне интерфейсов, а не реализации
