Определяют взаимодействие между объектами, увеличивая таким образом его гибкость.
- Цепочка обязанностей (Chain of responsibility)
Предназначен для организации в системе уровней ответственности.
- Команда, Action, Transaction (Command)
Представляет действие. Объект команды заключает в себе самодействие и его параметры.
- Интерпретатор (Interpreter)
Решает часто встречающуюся, но подверженную изменениям, задачу.
- Итератор (CursorIterator)
Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого из объектов, входящих в состав агрегации.
Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.
Позволяет не нарушая инкапсуляцию зафиксировать и сохранить внутренние состояния объекта так, чтобы позднее восстановить его в этих состояниях.
Предотвращает нулевые указатели, предоставляя объект «по умолчанию».
- Наблюдатель или Издатель-подписчик (Observer)
Определяет зависимость типа «один ко многим» между объектами таким образом, чтоприизменениисостоянияодногообъектавсезависящиеотнегооповещаютсяобэтомсобытии.
Используется для обеспечения общей функциональности группе классов.
- Спецификация (Specification)
Служит для связывания бизнес-логики.
Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.
Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости.
Подробнее про шаблоны архитектуры системы, «Модель-Представление-Контроллер» (MVC), «Модель-Вид-Контроллер») и ExecutionFlow в записи онлайн-лекции ниже.