8 lines
1.2 KiB
Markdown
8 lines
1.2 KiB
Markdown
Паттерн "Стратегия" определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. Он позволяет модифицировать алгоритмы независимо от их использования на стороне клиента.
|
||
|
||
Каждая утка СОДЕРЖИТ экземпляры FlyBehavior и Quack Behavior, которым делегируются выполнение соответствующих операций. Подобные связи между двумя классами означают, что используется механизм композиции. Поведение не наследуется, а предоставляется правильно выбранным объектом.
|
||
|
||
*Принципы:*
|
||
- Инкапсулировать то, что изменяется
|
||
- Отдавать предпочтение композиции перед наследованием
|
||
- Программировать на уровне интерфейсов, а не реализации |