cairngorm microarchitecture

17

Click here to load reader

Upload: constantiner

Post on 24-Jun-2015

1.310 views

Category:

Documents


0 download

DESCRIPTION

Презентация Павла Кожина aka Vertex о Cairngorm Microarchitecture

TRANSCRIPT

Page 1: Cairngorm Microarchitecture

Cairngorm Microarchitecture

Павел Кожин[email protected]

http://www.riapriority.com/vertex

Exigen Services

http://www.adobe.com/go/cairngorm

Page 2: Cairngorm Microarchitecture

Cairngorm (karn gorm)

Желто-коричневая разновидность топаза,

залегающая преимущественно в Шотландии.

Произношение

Page 3: Cairngorm Microarchitecture

Что такое Cairngorm?

• Набор классов и интерфейсов• Микроархитектура на базе паттернов• Проверенное решение для создания

Flex-приложений

Page 4: Cairngorm Microarchitecture

Зачем?

• Нет необходимости изобретать велосипед• Стандартный подход• Легкий способ добавления новой

функциональности• Повторное использование

Page 5: Cairngorm Microarchitecture

Используемые паттерны

• Singleton• Command• Delegate• ValueObject• Observer

Page 6: Cairngorm Microarchitecture

Решаемые проблемы

• Обработка действий пользователя• FrontController – перехват• Command – обработка • Service to Worker микроархитектура

• Бизнес логика• BusinessDelegate – обработка бизнес логики• ServiceLocator – доступ к дата-сервисам

• Клиентская объектная модель• ValueObject – модель• ModelLocator – управление состоянием и

обновление представления

Page 7: Cairngorm Microarchitecture

Модель

• Состояние приложения• Данные с сервера или локальные данные • Реализует Cairngorm ModelLocator

– Singleton для хранения клиентской модели

Page 8: Cairngorm Microarchitecture

Представление

• Пользовательский интерфейс (GUI)• mxml файлы и контролы • Данные доставляются в модел через binding

Page 9: Cairngorm Microarchitecture

Контроллер

• Взаимодействие между уровнями приложения– Events

• com.adobe.cairngorm.control.CairngormEvent– Commands

• com.adobe.cairngorm.commands.ICommand• com.adobe.cairngorm.business.IResponder

• Реализует Cairngorm ModelLocator– Singleton для хранения клиентской модели

• Связка комманд и событий– Пользовательские события/смена модели

Page 10: Cairngorm Microarchitecture

События

• Парметры передаваемые между уровнями приложения

Page 11: Cairngorm Microarchitecture

Комманда

• “Service to Worker” паттерн• Реализует Cairngorm Command Interface• Responder Interface (опционально)• execute() получает событие в виде аргумента

Page 12: Cairngorm Microarchitecture

Сервис Локатор

• Singleton паттерн• Выделяет уровень взимодействия с данными

Page 13: Cairngorm Microarchitecture

Бизнес Делегат

• Обращается и получает результаты от сервераиспользуя ServiceLocator

• Позволяет комманде вызывать удаленный сервис, обрабатывать результат или ошибку

Page 14: Cairngorm Microarchitecture

Workflow

• Регистрируем CairngormEvent в FrontController• Вещаем событие• FrontController – вызов execute() в нужной

комманде• Command вызывает сервис используя

BusinessDelegate• Результат обрабатывается в result() комманды• Изменение модели через ModelLocator• Изменения представления

Page 15: Cairngorm Microarchitecture

ServiceLocator

ServiceLocator

ModelLocatorModelLocator

VOVO ViewView

User EventUser Event

CairngormEventDispatcher

CairngormEventDispatcher

FrontControllerFrontController

CommandCommand

binding

DelegateDelegate

Диаграмма

http://www.cairngormdocs.org/tools/CairngormDiagramExplorer.html

Page 16: Cairngorm Microarchitecture

За и против

• Ясный и прямолинейный подход• Легко оценивать трудозатраты• Много кода при добавлении простой

функциональности• Много зависимостей

Page 17: Cairngorm Microarchitecture

Вопросы?

Павел Кожин[email protected]

http://www.riapriority.com/vertex

Exigen Services