Top Banner
37

Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Jul 06, 2015

Download

Documents

Max Rozdobudko
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Page 2: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

1. Введение2. Немного теории

a. Концептуальная диаграммаb. Суть фреймворкаc. Как это работает

3. Пример: IT Developers v14. Actionscript 3 [Multicore version]

a. Pipes Utilb. Пример : IT Developers v2c. Ньюансы

5. Немного о недостатках6. Выводы

Меню:

Page 3: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

open-source фреймворк для создания приложенийбазирующихся на мета-паттерне MVC – Model, View,Controller

PureMVC

Page 4: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

open-source фреймворк для создания приложенийбазирующихся на мета-паттерне MVC – Model, View,Controller

- содержит множество других паттернов внутрисебя: Façade, Mediator, Proxy, Command, etc.

- имеет слабо связанную архитектуру- легко расширяем- хорошо задокументирован

PureMVC

Page 5: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

планировался как фреймворк, независимый отплатформы и языка, хотя весь код в документацииИ примеры написаны на Actionscript 3, существуютверсии для AS2, Java, C#, PHP, etc.

PureMVC

Page 6: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

планировался как фреймворк, независимый отплатформы и языка, хотя весь код в документацииИ примеры написаны на Actionscript 3, существуютверсии для AS2, Java, C#, PHP, etc.

- не использует Actionscript Event Model- не использует Flex Libraries ( т.е. может

использоваться для Flash проектов )

PureMVC

Page 7: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Page 8: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Façade, Model, View, Controller – 4 Singletons(Singleton – только один экземпляр объекта может быть создан)

Page 9: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Façade – инициализирует и предоставляет прозрачный доступ для Model, View и Сontroller.

Модель представляют прокси классы, Вид – медиаторы, Контроллер – команды. Медиаторы, прокси и комманды используют Façade для доступа к

друг другу и взаимодествия.

Page 10: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Элементы системы взаимодейтсвуют между собой с помощью -

Notifications (используется Observer паттерн)Прокси могут посылать события, но не могут их слушать, медиаторы могут и

посылать и слушать события, а комманды могут не только посылать события, но и вызываться событием.

Page 11: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

1. Проектирование, нужно четко разобраться вприложении и сразу разграничивать роли илогику между моделью, видом и контроллером

2. Создание визуальных элементов – view components пранировать как отдельный компонент, продумать его API, создать ряд событий для отлавливания его изменений

3. Создание сервисов для общения с сервером –отсылки и получения данных, а также VO объектов

Как легко написать приложение на PureMVC

Page 12: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

4. Продумать какие основные действия будетвыполнять приложение – функциональность.

Как легко написать приложение на PureMVC

Page 13: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

4. Продумать какие основные действия будетвыполнять приложение – функциональность.

... т.е все как обычно – спроектировать, создатьвизуальный мокап, сервисы (если есть общение ссервером) и продумать, что будет делать приложение...

Как легко написать приложение на PureMVC

Page 14: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

4. Продумать какие основные действия будетвыполнять приложение – функциональность.

... т.е все как обычно – спроектировать, создатьвизуальный мокап, сервисы (если есть общение ссервером) и продумать, что будет делать приложение...

А вот теперь взять в руки инструмент...

Как легко написать приложение на PureMVC

Page 15: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

• Создаем Façade для нашего приложения

a. extends PureMVC Façade and implements Ifacade interface

b. определяем метод getInstance() который возвращает единственный экземпляр фасада

c. описываем имена для всех основных сообщений (notifications) приложения

d. инициализируем контроллер (перегружаем initializeController метод) и мапим события к коммандам

e. определяем метод startup который запускает приложение и обычно связан с коммандой StartupCommand

f. Инициализируем и вызываем startup в приложении (если во Flex, то обычно в creationComplete)

Page 16: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все!

Page 17: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?

Page 18: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?... А по идее должно)

Page 19: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?... А по идее должно)

2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы

Page 20: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?... А по идее должно)

2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы

3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их

Page 21: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?... А по идее должно)

2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы

3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их

4. Создать Сommands для запуска приложения, инициализации и остальной логики приложения- simple commands- macro commands

Page 22: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Все! ... Работает?... А по идее должно)

2. Создать Proxy классы для разного типа данных в которых мы будем вызывать уже созданные сервисы

3. Создать Mediators – которые слушают и обрабатывают события визуальных компонентов, а также изменяют их

4. Создать Сommands для запуска приложения, инициализации и остальной логики приложения- simple commands- macro commands

5. Добавить обмен событиями (notifications)

Page 23: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Важное в PureMVCРеализация первостепенной мечты каждого программиста,

начинающего работать с чем-либо новым или на новом рабочем месте )

Page 24: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Модульные приложения

А что если ядер несколько?

Трубопровод, как выход из ситуации

Page 25: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

public static function getInstance( key:String ):ApplicationFacade { if (instanceMap[key] == null) instanceMap[key] = new ApplicationFacade(key); return instanceMap[key] as ApplicationFacade; }

PureMVC Actionscript 3 MulticoreИспользование мультитона вместо синглтона

Page 26: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore PipesНу и собственно трубопровод

Page 27: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore PipesВариант посложнее: система водоканалов

Page 28: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

Существующее приложениене нужно переделывать!

Page 29: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

Существующее приложениене нужно переделывать!

- для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction

Page 30: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

Существующее приложениене нужно переделывать!

- для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction

- для главного приложения создаются и регистрируются так называемые TeeSplit (для труб по которым идут сообщения от главного

приложения) и TeeMerge ( для труб по которым идут сообщения от модулей к главному приложению)

Page 31: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

Существующее приложениене нужно переделывать!

- для приложения, а также для каждого из модулей создается специальный соединяющий медиатор – Junction

- для главного приложения создаются и регистрируются так называемые TeeSplit (для труб по которым идут сообщения от главного

приложения) и TeeMerge ( для труб по которым идут сообщения от модулей к главному приложению)

- на соединители ставятся слушатели для входящих сообщений

Page 32: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

3. Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.

Page 33: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

3. Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.

5. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений

Page 34: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

3. Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.

5. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений

7. Для отправки сообщения используется метод sendMessage(), метод Junction медиатора, который посылает объекты типа Message

Page 35: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

PureMVC Actionscript 3 Multicore Pipes

3. Создаем Junction медиаторы для приложения и модулей, которые будут соединяться трубами, одна труба для сообщений от модуля к приложению, одна – наоборот.

5. Получатель должен иметь слушатель – pipe listener, для обработки входящих сообщений

7. Для отправки сообщения используется метод sendMessage(), метод Junction медиатора, который посылает объекты типа Message

9. После получение сообщения оно легко превращается в notification внутри принимающего приложения

Page 36: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Список литературы для прочтения

www.puremvc.org+ представленная документация, примеры с

исходным кодом, форум

http://www.joshuaostrom.comhttp://www.websector.de/blog

http://www.nutrixinteractive.com/blog/http://flash-ripper.com/

Page 37: Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry

Спасибо за внимание!