Паттерны поведения рассматривают вопросы о связях между объектами и распределением обязанностей между ними. Для этого могут использоваться механизмы, основанные как на наследовании, так и на композиции.
К паттернам поведения относятся:
1)Интерпретатор. Для заданного языка определяет представление его грамматики, а также интерпретатор предложений этого языка.
2) Шаблонный метод. Шаблонный метод определяет основу алгоритма и позволяет подклассам переопределить некоторые шаги алгоритма, не изменяя его структуру в целом.
3)Итератор. Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления.
4) Команда. Инкапсулирует запрос как объект, позволяя тем самым задавать параметры клиентов для обработки соответствующих запросов, ставить запросы в очередь или протоколировать их, а также поддерживать отмену операций.
Достоинства: Придает системе гибкость, отделяя инициатора запроса от его получателя.
5)Наблюдатель. Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются.
6) Посетитель. Описывает операцию, выполняемую с каждым объектом из некоторой структуры. Паттерн посетитель позволяет определить новую операцию, не изменяя классы этих объектов.
7) Посредник. Определяет объект, инкапсулирующий способ взаимодействия множеств объектов. Посредник обеспечивает слабую связанность системы, избавляя объекты от необходимости явно ссылаться друг на друга и, позволяя тем самым, независимо изменять взаимодействия между ними.
8)Состояние. Позволяет объекту варьировать свое поведение в зависимости от внутреннего состояния. Извне создается впечатление, что изменился класс объекта.
9)Стратегия. Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Стратегия позволяет изменять алгоритмы независимо от клиентов, которые ими пользуются.
Достоинства паттерна Strategy:
· Систему проще поддерживать и модифицировать, так как семейство алгоритмов перенесено в отдельную иерархию классов.
·предоставляет возможность замены одного алгоритма другим в процессе выполнения программы.
·позволяет скрыть детали реализации алгоритмов от клиента.
Недостатки паттерна Strategy:
·Для правильной настройки системы пользователь должен знать об особенностях всех алгоритмов.
·Число классов в системе возрастает.
10) Хранитель. Не нарушая инкапсуляции, фиксирует и выносит за пределы объекта его внутреннее состояние так, чтобы позднее можно было восстановить в нем объект.
11)Цепочка обязанностей. Позволяет избежать привязки отправителя запроса к его получателю, давая шанс обработать запрос нескольким объектам. Связывает объекты-получатели в цепочку и передает запрос вдоль этой цепочки, пока его не обработают.