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/README.md

17 lines
1.3 KiB
Markdown
Raw Normal View History

2022-11-09 21:22:13 +00:00
# Стратегия
Инкапсуляция алгоритма в объект — это назначение паттерна **стратегия**.
Поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и
помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.
## Код
Каждая утка СОДЕРЖИТ экземпляры `FlyBehavior` и `Quack­Behavior`, которым делегируются выполнение соответствующих операций. Подобные связи между двумя классами означают, что используется механизм композиции. Поведение не наследуется, а предоставляется правильно выбранным объектом.
## Принципы
- Инкапсулировать то, что изменяется
- Отдавать предпочтение композиции перед наследованием
- Программировать на уровне интерфейсов, а не реализации