Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как лучше организовать подписку на событие группы ф-ций? (http://www.flasher.ru/forum/showthread.php?t=109980)

wvxvw 25.03.2008 02:39

Как лучше организовать подписку на событие группы ф-ций?
 
Вот, интересует такой вопрос: Нужно рассылать одно и то же событие объектам, потомкам объектов, разным группам объектов и т.д. Какая схема предпочтительнее с точки зрения архитектуры\производительности?
схема 1:

Код:

генератор события
                |
        ||||||||||
объекты получающие событие

схема 2:
Код:

генератор события
                |
          / | \
        промежуточные звенья передающие событие дальше по цепочке
        /|\        /|\        /|\
объекты получающие событие


Mr. Fixit 25.03.2008 05:02

считаю, что "схема 1"..
потому что, и читабельность лучше, и нету запутанных ссылок.

etc 25.03.2008 09:53

Какого рода объекты?

divinus 25.03.2008 12:39

если заранее не известно какой именно объект должен обработать событие, есть симпатичный паттерн "цепочка обязанностей" (Chain of Responsibility)

wvxvw 25.03.2008 13:16

Вобщем, чтобы немного прояснить ситуацию:
Генератор события - класс Плеер, он генерит фреймЧендж(номер кадра).
А подписать на это нужно:
- класс заведующий абстракным представлением того, что сейчас проиcxодит в плеере.
- слои (уровни) плеера, которые в свою очередь могут содержать по нескольку объектов, которым тоже это событие нужно, но, мало того, у них еще могут быть общие для нескольких элементов транзишены/эффекты изменяющиеся по ходу проигрывания.
- элементы интерфейса осуществяющие и отображающие плейбек
ну и еще несколько менее значимых объектов, типа класса передающего это же событие в ЖС и т.п.

Про Chain of Responsibility поищу. Спасиб.

Синхронность получения событий может иметь очень принципиальное значение...

terbooter 25.03.2008 13:54

Насколько я понимаю, в описанной вами ситуации можно применить только схему 2.
Потомучто визуальные элементы группируются в блоки. А если к каждому элементу отдельно обращаться то это совсем не ООПшно

wvxvw 25.03.2008 14:08

Да, но тут возникает такой вопрос:
по сути, раздача события = последовательный вызов функций. Функции связанные с рендерингом могут выполнятся долго... Вопрос, на сколько независимо события поступают к разным объектам? Т.е. если одно событие запустит долго выполняющуюся функцию, когда вызовуться следующие подписанные на него функции?

CrazyFlasher 25.03.2008 23:57

в pureMVC framework это классно реализовано...советую посмотреть


Часовой пояс GMT +4, время: 11:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.