← 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 и окна двух запушенных коллег | ||