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

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Пример)
(Пример)
Строка 11: Строка 11:
 
* Widget и его наследники - взаимодействующие через посредника объекты
 
* Widget и его наследники - взаимодействующие через посредника объекты
 
* FontDialogDirector - '''посредник'''
 
* FontDialogDirector - '''посредник'''
 +
 +
Как работает:
 +
* Изменившийся ListBox вызывает Changed(), который вызывает FontDialogDirector.WidgetChanged().
 +
* FontDialogDirector.WidgetChanged вызывает GetSelection() для объекта ListBox и затем SetText для связанного объекта TextField
  
 
[[Изображение:MediatorExample.png|780px]]
 
[[Изображение:MediatorExample.png|780px]]

Версия 12:07, 20 июля 2014

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

Описание

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

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

Пример

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

Здесь:

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

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

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

MediatorExample.png