Архитектурные проблемы flex-приложений
DESCRIPTION
Презентация посвящена описанию архитектурных проблем Flex-приложений и способу их решения с помощью мета-паттерна Model-View-Controller (MVC).TRANSCRIPT
Архитектурные проблемы Flex-приложений
Константин Ковалёвhttp://riapriority.com/
24 августа 2008 г.
Начнем с примера
1. Поиск
SearchWebService
2. Просмотр детальной информации
ItemDetailItemInfo
3. Загрузка Избранного
SharedObjects
4. Сохранение Избранного
SharedObjects
Пишем наше приложение…
…И получаем результат
http://ozon-books-finder.googlecode.com/svn/trunk/flexspaghetti
Почему так?
Потому что…
Почему так?
Потому что…
Но есть выход!
Паттерны
Thing-Model-View-EditorМай 1979
Паттерны
Models-Views-ControllersДекабрь 1979
Model-View-Controller (MVC)
Trygve Reenskaug
Tags:• Xerox PARC• SmallTalk• 1978-1979
http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.htmlhttp://heim.ifi.uio.no/~trygver/index.htmlhttp://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf
MVC
ControllerController
ViewView ModelModel
Model
• Models represent knowledge ©
• Хранит данные и состояние приложения
View (представление)
• Внешний вид приложения, визуальное поведение
• Получает пользовательский ввод
Controller
• Отвечает на события
• Изменяет модель
MVC-картинки
ControllerController
ViewView ModelModel
MVC-картинки
ControllerController
ViewView ModelModel
оповещает
MVC-картинки
ControllerController
ViewView ModelModel
оповещает изменяет
MVC-картинки
ControllerController
ViewView ModelModel
оповещает изменяет
обновляет
MVC-картинки (вариант)
ControllerController
ViewView ModelModel
оповещает
MVC-картинки (вариант)
ControllerController
ViewView ModelModel
оповещает
изменяет
Что это дает?
• Взаимозаменяемость частей
• Независимая модификация кода
• Повторное использование
• Понятная структура
Что с этим делать?
• Надо много думать • Надо много писать • Лучше я по-старинке
Что с этим делать?
• Надо много думать • Надо много писать • Лучше я по-старинке
За вас уже подумали и написали!
MVC, IoC и другие…
• Cairngorm• PureMVC• Parsley• Mate• ServeBox Foundry• Flest• Flex-slide• Guasax• Model-Glue: Flex• easyMVC
• Prana• Anvil• MIoC• Solstice• ARP• Indigo Framework• VEGAS• MVCS• Swiz
Далее в нашей программе
• Cairngorm
• Mate
Stay tuned!
Чем заняться в перерыве
http://code.google.com/p/ozon-books-finder/