Использовать Flash Event System или создать собственный шаблон проектирования Observer? - PullRequest
1 голос
/ 20 декабря 2010

В этой кулинарной книге кто-то рекомендует создать собственный шаблон проектирования Observer: http://cookbooks.adobe.com/post_Using_Observer_Pattern_instead_of_Events-18232.html

Это действительно быстрее, чем в плане производительности?

Ответы [ 3 ]

3 голосов
/ 20 декабря 2010

Автор этой статьи не утверждал, что он работает быстрее.

Вместо этого это альтернативная архитектура.Используя встроенную систему событий, вы подписываетесь на издателя событий.В этой статье есть одноэлементная «шина данных», которая объединяет события, на которые вы подписаны.

В конечном счете, это решает другую проблему, ИМО.ObserverManager в этой статье рассылает события, которые могут быть обнаружены любым объектом в системе.Он отлично подходит для таких мероприятий, как «Воспроизвести фильм», «Приостановить фильм», «Перейти к ссылке» и т. Д., Где любой может опубликовать его, а любой может подписаться на него.Это слабо связано.Вроде как радио CB.

Шаблон событий в Flex / Flash, с другой стороны, более интимный.Свойство объекта модели изменилось, и пользовательский интерфейс, например, хочет его отобразить.События идут объект к объекту.Это более тесно связано - объекты должны иметь ссылки друг на друга.Вроде как телефонный звонок (или, если это односторонний, телеграф, может быть?)

2 голосов
/ 20 декабря 2010

Да, диспетчеризация Event идет медленно, если вы стремитесь к производительности, вы можете использовать свою собственную систему событий или если вы не хотите изобретать велосипед, взгляните на библиотеку сигналов as3 отРоберт Пеннер.

0 голосов
/ 26 апреля 2013

привет, я думаю, что авторский код можно оптимизировать, например, отписаться от публичной функции (обозреватель: IObserver): void {

       var index:int=indexof(observerData);
       if(index>0)
       {
             observerData.splice(index,1);

        }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...