Главная » Delphi » Delphi 2006 – Шаблон Mediator (Посредник)

0

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

Рис. 7.18. Шаблон Посредник в Дизайнере модели

Интерфейс Посредника содержит основной метод changed, предназначенный для информирования о произошедших изменениях в состоянии некоторого элемента системы.

IMediator = interface

procedure Changed(AColleague :TColleague); end;

Координацией работы элементов группы занимается экземпляр класса- наследника TConcreteMediator:

TConcreteMediator = class(TObject, IMediator) strict private var

FTConcreteColleague: TConcreteColleague;

public

procedure Changed(AColleague :TColleague); procedure SetTConcreteColleague(AColleague : TConcreteColleague);

end;

Каждый из управляемых классов (Коллег) наследует возможности класса TColleague:

TColleague = class abstract strict protected

function GetMediator: IMediator; constructor Create(AMediator :IMediator);

strict private var

FMediator:IMediator;

end;

Коллеги работают только с Посредником, избегая прямого взаимодействия между собой, что и позволяет выделить логику их общения в отдельный объект. Например, конкретная версия класса-коллеги может выглядеть так:

TConcreteColleague = class(TColleague) public

procedure SampleOperation;

constructor Create(AMediator :IMediator);

end;

Здесь метод SampleOperation — некоторое прикладное действие, которое должно вызвать реакцию Посредника, и он реализуется примерно так.

procedure TConcreteColleague.SampleOperation;

begin

GetMediator().Changed(self);

end;

Метод Changed в классе TConcreteMediator вносит изменения в другие подведомственные классы. Как правило, в конструкторе этого класса формируются элементы управления и запоминаются ссылки на них с последующей синхронной обработкой в методе changed.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии