Архитектурные проблемы flex-приложений

30
Архитектурные проблемы Flex-приложений Константин Ковалёв http://riapriority.com/ [email protected] 24 августа 2008 г.

Upload: constantiner

Post on 21-Dec-2014

1.839 views

Category:

Technology


2 download

DESCRIPTION

Презентация посвящена описанию архитектурных проблем Flex-приложений и способу их решения с помощью мета-паттерна Model-View-Controller (MVC).

TRANSCRIPT

Page 1: Архитектурные проблемы Flex-приложений

Архитектурные проблемы Flex-приложений

Константин Ковалёвhttp://riapriority.com/

[email protected]

24 августа 2008 г.

Page 2: Архитектурные проблемы Flex-приложений

Начнем с примера

Page 3: Архитектурные проблемы Flex-приложений

1. Поиск

SearchWebService

Page 4: Архитектурные проблемы Flex-приложений

2. Просмотр детальной информации

ItemDetailItemInfo

Page 5: Архитектурные проблемы Flex-приложений

3. Загрузка Избранного

SharedObjects

Page 6: Архитектурные проблемы Flex-приложений

4. Сохранение Избранного

SharedObjects

Page 7: Архитектурные проблемы Flex-приложений

Пишем наше приложение…

Page 8: Архитектурные проблемы Flex-приложений

…И получаем результат

http://ozon-books-finder.googlecode.com/svn/trunk/flexspaghetti

Page 9: Архитектурные проблемы Flex-приложений

Почему так?

Потому что…

Page 10: Архитектурные проблемы Flex-приложений

Почему так?

Потому что…

Но есть выход!

Page 11: Архитектурные проблемы Flex-приложений

Паттерны

Thing-Model-View-EditorМай 1979

Page 12: Архитектурные проблемы Flex-приложений

Паттерны

Models-Views-ControllersДекабрь 1979

Page 13: Архитектурные проблемы Flex-приложений

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

Page 14: Архитектурные проблемы Flex-приложений

MVC

ControllerController

ViewView ModelModel

Page 15: Архитектурные проблемы Flex-приложений

Model

• Models represent knowledge ©

• Хранит данные и состояние приложения

Page 16: Архитектурные проблемы Flex-приложений

View (представление)

• Внешний вид приложения, визуальное поведение

• Получает пользовательский ввод

Page 17: Архитектурные проблемы Flex-приложений

Controller

• Отвечает на события

• Изменяет модель

Page 18: Архитектурные проблемы Flex-приложений

MVC-картинки

ControllerController

ViewView ModelModel

Page 19: Архитектурные проблемы Flex-приложений

MVC-картинки

ControllerController

ViewView ModelModel

оповещает

Page 20: Архитектурные проблемы Flex-приложений

MVC-картинки

ControllerController

ViewView ModelModel

оповещает изменяет

Page 21: Архитектурные проблемы Flex-приложений

MVC-картинки

ControllerController

ViewView ModelModel

оповещает изменяет

обновляет

Page 22: Архитектурные проблемы Flex-приложений

MVC-картинки (вариант)

ControllerController

ViewView ModelModel

оповещает

Page 23: Архитектурные проблемы Flex-приложений

MVC-картинки (вариант)

ControllerController

ViewView ModelModel

оповещает

изменяет

Page 24: Архитектурные проблемы Flex-приложений

Что это дает?

• Взаимозаменяемость частей

• Независимая модификация кода

• Повторное использование

• Понятная структура

Page 25: Архитектурные проблемы Flex-приложений

Что с этим делать?

• Надо много думать • Надо много писать • Лучше я по-старинке

Page 26: Архитектурные проблемы Flex-приложений

Что с этим делать?

• Надо много думать • Надо много писать • Лучше я по-старинке

За вас уже подумали и написали!

Page 27: Архитектурные проблемы Flex-приложений

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

Page 28: Архитектурные проблемы Flex-приложений

Далее в нашей программе

• Cairngorm

• Mate

Stay tuned!

Page 29: Архитектурные проблемы Flex-приложений

Чем заняться в перерыве

http://code.google.com/p/ozon-books-finder/

Page 30: Архитектурные проблемы Flex-приложений

Q&A

Константин Ковалёвhttp://riapriority.com/

[email protected]