Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Design Patterns via C#.pdf
Скачиваний:
154
Добавлен:
17.03.2016
Размер:
13.25 Mб
Скачать

26

Диспетчеризация

Техника использования диспетчеризации имеет две формы: «Цепочка объектов» и «ИздательПодписчик». Эти техники были положены в основу поведенческих паттернов.

Цепочка объектов

При использовании техники «Цепочка объектов» - объекты связываются в цепочку, вдоль которой происходит серия вызовов методов (посылка сообщений).

class Program { static void Main() { Link3 chain = new Link3(); chain.Method(); } }

См. Пример к главе: \RulesOOP (Chain)

class Link3 { public void Method() { Link2 link = new Link2(); link.Method(); Console.WriteLine("Link3"); } }

class Link2 { public void Method() { Link1 link = new Link1(); link.Method(); Console.WriteLine("Link2"); } }

class Link1 { public void Method() { Console.WriteLine("Link1"); } }

На диаграмме последовательностей можно отследить работу техники «Цепочка объектов».

Рисунок 3. Диаграмма последовательностей техники "Цепочка объектов».

27

Издатель-Подписчик

При использовании техники «Издатель-Подписчик» - объект-издатель вызывает метод на объектеподписчике, а объект-подписчик после этого вызывает метод на объекте-издателе. Таким образом объектиздатель уведомляет объекта-подписчика о наступлении некоторого события.

class Program

 

 

{

 

 

static void Main()

 

 

{

 

 

Publisher publisher

= new Publisher();

Subscriber subscriber

= new Subscriber();

// Посылка сообщения подписчику.

publisher.SendMessageTo(subscriber);

}

 

 

}

 

 

// Издатель.

 

 

class Publisher

 

 

{

 

 

public void SendMessageTo(Subscriber subscriber)

 

// Подписчик.

{

 

class Subscriber

subscriber.CallOperationsOn(this);

 

{

}

 

public void CallOperationsOn(Publisher publisher)

 

 

{

public void Operation()

 

publisher.Operation();

{

 

}

Console.WriteLine("Выполнена операция.");

 

}

}

 

 

}

 

 

См. Пример к главе: \RulesOOP (Behavioral)

На диаграмме последовательностей можно отследить работу техники «Издатель-Подписчик».

Рисунок 4. Диаграмма последовательностей техники "Издатель-подписчик"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]