← kolan.mobi
     хоумпэйдж
 Главная

← ksoftware.ya.ru
     блог
 

Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

всемогущие_коллеги [2008/04/13 14:51]
kolan
всемогущие_коллеги [2008/04/13 14:53] (текущий)
kolan
Строка 13: Строка 13:
Рассмотрим два широко известных паттерна: «медиатор» и «команда»[3]. Паттерн медиатор определяет объект, инкапсулирующий способ взаимодействия множества объектов. Медиатор обеспечивает слабую связанность системы[2], избавляя объек¬ты от необходимости явно ссылаться друг на друга и, позволяя тем самым незави¬симо, изменять взаимодействия между ними. Диаграмма классов[4] этого паттерна представлена на рисунке 1. Рассмотрим два широко известных паттерна: «медиатор» и «команда»[3]. Паттерн медиатор определяет объект, инкапсулирующий способ взаимодействия множества объектов. Медиатор обеспечивает слабую связанность системы[2], избавляя объек¬ты от необходимости явно ссылаться друг на друга и, позволяя тем самым незави¬симо, изменять взаимодействия между ними. Диаграмма классов[4] этого паттерна представлена на рисунке 1.
{{images:colleagues:MediatorModel1.png}} {{images:colleagues:MediatorModel1.png}}
 +
Рисунок 1 – паттерн «медиатор» на диаграмме классов Рисунок 1 – паттерн «медиатор» на диаграмме классов
//IMediator – интерфейс для обмена информацией с объектами TColleague. //IMediator – интерфейс для обмена информацией с объектами TColleague.
Строка 22: Строка 23:
{{images:colleagues:CommandModel.png}}  {{images:colleagues:CommandModel.png}} 
 +
Рисунок 2 – паттерн «команда» на диаграмме классов Рисунок 2 – паттерн «команда» на диаграмме классов
//TCommand – объявляет интерфейс для выполнения операции. //TCommand – объявляет интерфейс для выполнения операции.
Строка 33: Строка 35:
Ядро всего каркаса, который получил название MediatorProject[8], составляет всего один bpl пакет. В нем находятся три необходимых для работы класса. Первый – синглетон[3] TSystemMediator. Это медиатор, который содержит в себе список подключенных к нему коллег, методы для их подключения и отключения, а так же метод для передачи команд от одного коллеги к другому. Второй – общий для всех коллег предок TCustomColleague, в конструкторе которого выполняется подключение к медиатору. И третий – TCustomCommand предок для всех классов команд. В этом классе содержаться методы необходимые для работы с командами. Выше описанные классы представлены на диаграмме классов рисунок 3. Ядро всего каркаса, который получил название MediatorProject[8], составляет всего один bpl пакет. В нем находятся три необходимых для работы класса. Первый – синглетон[3] TSystemMediator. Это медиатор, который содержит в себе список подключенных к нему коллег, методы для их подключения и отключения, а так же метод для передачи команд от одного коллеги к другому. Второй – общий для всех коллег предок TCustomColleague, в конструкторе которого выполняется подключение к медиатору. И третий – TCustomCommand предок для всех классов команд. В этом классе содержаться методы необходимые для работы с командами. Выше описанные классы представлены на диаграмме классов рисунок 3.
-{{images:colleagues:MediatorFramework.png}}   +{{images:colleagues:MediatorFramework.png}}  
 +
Рисунок 3 – ядро каркаса MediatorProject Рисунок 3 – ядро каркаса MediatorProject
//TCustomColleague – общий предок всех коллег. //TCustomColleague – общий предок всех коллег.
Строка 43: Строка 46:
{{images:colleagues:Colleagues Sequence Diagram.png}} {{images:colleagues:Colleagues Sequence Diagram.png}}
 +
Рисунок 4 – взаимодействие коллег через медиатор на диаграмме последовательности Рисунок 4 – взаимодействие коллег через медиатор на диаграмме последовательности
Строка 49: Строка 53:
{{images:colleagues:ProjectStructure.png}} {{images:colleagues:ProjectStructure.png}}
 +
Рисунок 5 – структура проекта, основанного на каркасе MediatorProject Рисунок 5 – структура проекта, основанного на каркасе MediatorProject
Строка 55: Строка 60:
{{images:colleagues:FreGrafColleagusImages.png}} {{images:colleagues:FreGrafColleagusImages.png}}
 +
Рисунок 6 – главное окно программы KFreGraf и окна двух запушенных коллег Рисунок 6 – главное окно программы KFreGraf и окна двух запушенных коллег