![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Modus ponens
|
Вот, интересует такой вопрос: Нужно рассылать одно и то же событие объектам, потомкам объектов, разным группам объектов и т.д. Какая схема предпочтительнее с точки зрения архитектуры\производительности?
схема 1: схема 2:
__________________
Hell is the possibility of sanity |
|
|||||
|
Banned
Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
считаю, что "схема 1"..
потому что, и читабельность лучше, и нету запутанных ссылок. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Какого рода объекты?
|
|
|||||
|
если заранее не известно какой именно объект должен обработать событие, есть симпатичный паттерн "цепочка обязанностей" (Chain of Responsibility)
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет... |
|
|||||
|
Modus ponens
|
Вобщем, чтобы немного прояснить ситуацию:
Генератор события - класс Плеер, он генерит фреймЧендж(номер кадра). А подписать на это нужно: - класс заведующий абстракным представлением того, что сейчас проиcxодит в плеере. - слои (уровни) плеера, которые в свою очередь могут содержать по нескольку объектов, которым тоже это событие нужно, но, мало того, у них еще могут быть общие для нескольких элементов транзишены/эффекты изменяющиеся по ходу проигрывания. - элементы интерфейса осуществяющие и отображающие плейбек ну и еще несколько менее значимых объектов, типа класса передающего это же событие в ЖС и т.п. Про Chain of Responsibility поищу. Спасиб. Синхронность получения событий может иметь очень принципиальное значение...
__________________
Hell is the possibility of sanity |
|
|||||
|
Насколько я понимаю, в описанной вами ситуации можно применить только схему 2.
Потомучто визуальные элементы группируются в блоки. А если к каждому элементу отдельно обращаться то это совсем не ООПшно
__________________
Сам себе репортер Последний раз редактировалось terbooter; 25.03.2008 в 13:57. |
|
|||||
|
Modus ponens
|
Да, но тут возникает такой вопрос:
по сути, раздача события = последовательный вызов функций. Функции связанные с рендерингом могут выполнятся долго... Вопрос, на сколько независимо события поступают к разным объектам? Т.е. если одно событие запустит долго выполняющуюся функцию, когда вызовуться следующие подписанные на него функции?
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
в pureMVC framework это классно реализовано...советую посмотреть
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|