Посредник (Mediator) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Общая диаграмма классов для паттерна Посредник)
(Достоинства и недостатки)
Строка 30: Строка 30:
 
* '''Colleague'''. Каждый объект Colleague знает о своем объекте Mediator. Все объекты Colleague обмениваются информацией только с посредником
 
* '''Colleague'''. Каждый объект Colleague знает о своем объекте Mediator. Все объекты Colleague обмениваются информацией только с посредником
  
=== Достоинства и недостатки ===
+
=== Достоинства ===
 +
* Устраняет связанность между коллегами
 +
* Выделяет механизм взаимодействия объектов в отдельную сущность
 +
=== Недостатки ===
 +
* Централизует управление. Посредник становится монолитом, который трудно сопровождать

Версия 16:04, 20 июля 2014

К основной странице курса

Описание

В большой системе с множеством объектов каждый объект может передавать сообщения другому. В результате этого сильно возрастает количество связей между объектами (n^2).

Вместо этого предлагается завести объект-посредник, через который передавать эти сообщения (n связей)

Пример

При выборе поля списка меняется поле ввода

Участники

  • Widget и его наследники - взаимодействующие через посредника объекты
  • FontDialogDirector - посредник

Диаграмма классов для примера

MediatorExample.png

Как работает:

  • Изменившийся ListBox вызывает Changed(), который вызывает FontDialogDirector.WidgetChanged().
  • FontDialogDirector.WidgetChanged вызывает GetSelection() для объекта ListBox и затем SetText для связанного объекта TextField

Диаграмма последовательности для примера

MediatorExampleSeq.png

Общая диаграмма классов для паттерна Посредник

MediatorCommon.png

Участники

  • Mediator - посредник. Определяет интерфейс для обмена информацией с объектами Colleague
  • ConcreteMediator. Владеет информацией о всех объектах Colleague, координирует их действие
  • Colleague. Каждый объект Colleague знает о своем объекте Mediator. Все объекты Colleague обмениваются информацией только с посредником

Достоинства

  • Устраняет связанность между коллегами
  • Выделяет механизм взаимодействия объектов в отдельную сущность

Недостатки

  • Централизует управление. Посредник становится монолитом, который трудно сопровождать