|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
альтернатива пользовательским событиям
Уважаемые знатоки, подскажите такой теоретический вопрос по пользовательским событиям (ПС).
Для создания ПС мы делаем класс, допустим GameOver extends EventDispatcher и в конце игры делаем так В главном классе мы прописываем var konec:GameOver = new GameOver (); konec.addEventListener(GameOver.GAME_OVER, konecListener); 2.Либо прослушивать флажок о конце игры в EnterFrame, ведь по сути слушатель ПС konec.addEventListener(GameOver.GAME_OVER, konecListener), также потребляет память каждый кадр? В чем смысл использования ПС простыми словами? Спасибо |
|
|||||
1. Кривая архитектура приложения.
2. Не оптимально слушать в каждом кадре смену флажка. Цитата:
|
|
|||||
Регистрация: Apr 2014
Сообщений: 9
|
Представь, у тебя 150 классов, 100 из них надо уведомить об окончании игры, что будешь делать?
|
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
Цитата:
Добавлено через 43 секунды Т.е. мы регистрируем в каждом из 100 классов по слушателю пользовательского события? Или как мы будем информировать все классы? В чем различие (преимущество) от использования обычного метода класса Main? Последний раз редактировалось Dmitriy154; 25.09.2015 в 14:29. |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
События нужны, для обеспечения принципа слабой связанности компонентов программы, сокрытия кода и инкапсуляции. И это вопрос об архитектуре приложения в целом, а не о конкретном кейсе. Проще в частном случае, не означает проще в целом. В целом может быть сложнее. Код может превратиться в спагетти, т.к. части будут спутаны друг с другом.
Слушатель "не слушает". Это обработчик события - он "обрабатывает" событие, которое ему передаётся. |
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
Я имею в виду отмену регистрации приемника
|
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
- Для избежания ошибок. В удалённом объекте, даже если на него не осталось ссылок, слушатели продолжат работать. Из-за этого возможны ошибки этапа выполнения. |
|
|||||
Регистрация: Feb 2014
Сообщений: 192
|
Цитата:
Добавлено через 2 минуты Пока я для себя сделал вывод, что преимущество использования пользовательского события, как сказал Udaaff - для обеспечения принципа слабой связанности компонентов программы, сокрытия кода и инкапсуляции. Т.е. для небольшого приложения допустимо использовать другие способы. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
GameOver extends flash.events.Event |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Слушатели не "слушают" ничего каждый кадр.
Они просто посредники между двумя классами. А удаляют их потому, что GC не может удалить ненужный объект из памяти, если к нему привязан слушатель. Как, в принципе, и говорили выше. |
Часовой пояс GMT +4, время: 13:53. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|