Посредник () — поведенческий шаблон проектирования, обеспечивающий взаимодействие множества объектов, формируя при этом слабое зацепление и избавляя объекты от необходимости явно ссылаться друг на друга.

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

Решение Создать объект, инкапсулирующий способ взаимодействия множества объектов.

Преимущества Устраняется связанность между "Коллегами", централизуется управление.

Структура

Mediator – "Посредник" ConcreteMediator – "Конкретный посредник" Классы Colleague – "Коллеги"

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

Примеры

Пример на Java

Пример на C#

Пример на C++

Пример на Python

Пример на Delphi

Ссылки Паттерн Mediator (посредник) — назначение, описание, особенности и реализация на C++. Паттерны для масштабируемых JavaScript-приложений. Глава 10. Паттерн «Медиатор» — описание, пример реализации.

Категория:Шаблоны проектирования