This repository has been archived on 2022-11-09. You can view files and clone it, but cannot push or open issues or pull requests.
patterns-old/README.md

1.2 KiB
Raw Permalink Blame History

Паттерн "Стратегия" определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. Он позволяет модифицировать алгоритмы независимо от их использования на стороне клиента.

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

Принципы:

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