![]() |
запуск событий одного класса во множестве
Не знаю как правильно назвать тему, извиняйте.
Давно мучает такой вопрос, есть у нас класс управляющий сервером, тоесть класс приемник данных от сервера и соотв диспатчит события при приходе определенных данных. Задача - подписываться на события из разных классов. Самый простой вариант делаем класс статическим, создавая внутри диспатчер, и теперь из любой точки можно подписаться как Код AS3:
Вариант два, так же статик, но передавать туда диспатчер типа Код AS3:
Но вариант 1, тоже не блещет, где то говорилось и обсуждалось , что статик в этом случае не есть тру. Так вот интересно ваше мнение, 1. имеет право на жизнь статик в данном контексте ? 2. если не статик, то как ? Архитектруа Код AS3:
|
написать класс, в котором будет единственная функция, она будет диспатчить события, а все остальные ваши классы наследуйте от написанного класса. Я бы так сделал, на мой взгляд данный вариант более логичен нежели вариант со статикой
ServerDispatcher.as Код AS3:
Код AS3:
Код AS3:
|
|
Та даже если уж в сторону статика смотреть то лучше синглтон крутить.
А так да, обсервер имхо лучший вариант. Хотя от синглтона мало отличаться будет в данном контексте. Но обсервер можно будет сделать не только для сервера а и вообще для рассылки чего-попало кому-попало. Тоже некая гибкость, хотя и контроллить сложно. С обсервером получится асинхронная структура, с недостаточностью опыта может оказаться фатальным. |
Цитата:
Код AS3:
|
Ахах) Ну ужас весь от интерфейсов, которые необходимы только потому, что в классической схеме не используются события, а идет прямое оповещение (просто вызов интерфейсного метода у подписчиков).
Цитата:
Код AS3:
|
Что-то ничего не ясно. EventDispatcher и есть Observer.
|
Цитата:
|
Цитата:
Или в блоге каком-то, не помню. И уже не первый раз тебе отвечают, что диспатчер это просто одна из частных реализаций обсервера. Но отнюдь не сферический обсервер в вакууме. |
Wolsh спасибо я тебя понял.
|
| Часовой пояс GMT +4, время: 23:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.