Обсуждение паттернов поведения

Как правило, паттерны поведения дополняют и усиливают друг друга. Например, класс в Цепочке обязанностей, скорее всего, будет содержать хотя бы один Шаблонный метод. Он может пользоваться примитивными операциями, чтобы определить, должен ли объект обработать запрос сам, а также в случае необходимости выбрать объект, которому следует переадресовать запрос. Цепочка может применять паттерн Команда для представления запросов в виде объектов. Зачастую Интерпретатор пользуется паттерном Состояние для определения контекстов синтаксического разбора. Иногда Итератор обходит агрегат, а Посетитель выполняет операцию для каждого его элемента.

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

Бывает, что в системе применяется и паттерн Декоратор для переопределения некоторых свойств частей композиции. А паттерн Наблюдатель может связать структуры разных объектов, тогда как паттерн Состояние позволит компонентам варьировать свое поведение при изменении состояния. Сама композиция может быть создана с применением Строителя и рассматриваться как Прототип какой-то другой частью системы.

Хорошо продуманные объектно-ориентированные системы внешне похожи на собрание многочисленных паттернов, но вовсе не потому, что их проектировщики мыслили именно такими категориями. Композиция на уровне паттернов, а не классов или объектов позволяет добиться результата с меньшими усилиями.

 
< Пред   СОДЕРЖАНИЕ     След >