Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2011, 19:15
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 1  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
А мне было бы круто просто наследовать от EventDispatcher`а вторым классом, чем реализовывать IEventDispatcher.

Старый 15.01.2011, 19:24
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 2  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Покажите, пож., пример реализации IEventDispatcher. В хелпе непонятно как-то ((.

Старый 15.01.2011, 19:44
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 3  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Показываем:
Код AS3:
package  
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
 
 
	public class MyIEventDispatcher extends Object implements IEventDispatcher
	{
 
		public function MyIEventDispatcher() 
		{
			_eventDispatcher = new EventDispatcher( this );
		}
 
 
 
		private var _eventDispatcher:EventDispatcher;
 
 
 
		public function dispatchEvent( event:Event ):Boolean 
		{
			return _eventDispatcher.dispatchEvent( event );
		}
 
		public function hasEventListener( type:String ):Boolean 
		{
			return _eventDispatcher.hasEventListener( type );
		}
 
		public function willTrigger( type:String ):Boolean 
		{
			return _eventDispatcher.willTrigger( type );
		}
 
		public function removeEventListener( type:String, listener:Function, useCapture:Boolean=false ):void 
		{
			_eventDispatcher.removeEventListener( type, listener, useCapture );
		}
 
		public function addEventListener( type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false ):void 
		{
			_eventDispatcher.addEventListener( type, listener, useCapture, priority, useWeakReference );
		}
 
	}
 
}

Старый 15.01.2011, 21:59
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Кто это сказал? Плохая идея.
Я рад что наконец-то Вы пришли и сказали нам, что GoF`ы были не кем-то, кого стоит знать. =)

Старый 15.01.2011, 22:10
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 5  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
А кто это?

Через некоторое время:

Почитал. Ясно... А какова их мотивация?


Последний раз редактировалось semenyakinVS; 15.01.2011 в 22:31. Причина: Почитал кто это
Старый 15.01.2011, 22:34
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Вы тут описывали нам Декоратор. Так вот он тоже с приставкой GoF.

Старый 15.01.2011, 23:30
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Почитал. Ясно... А какова их мотивация?
Восновном там проблемы с зависимостью всех классов от одного базового и разрастание оного,
второй минус - иерархия классов чаще выглядит как граф, а не как дерево и не вписывается в одиночное наследование (про множественное ничего не знаю), третий минус - невозможность динамически изменять дерево наследования (ну это, если требуется)

А разработчики as3 видимо посмотрели на Java, С#, D, ... и решили что и as3 без множественного наследования обойдется
Считается что оно проблемы создает


Последний раз редактировалось expl; 15.01.2011 в 23:57.
Старый 16.01.2011, 00:29
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 8  
Ответить с цитированием
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
Пример реализации EventDispacher с помощью композиции:
Удалил, потому что пример был выше, просто чет не заметил его...
P.S.
На написание ушло не более 1 минуты... Медленнее чем просто унаследоваться, но не так уже и страшно...


Добавлено через 7 минут
Цитата:
Сообщение от semenyakinVS Посмотреть сообщение
Думаю, Страуструп дураком не был.
Страуструп при создании стандарта С++ 2.0 от множественного наследования избавился... Хотя шанс, что этот язык когда нибудь появится в реальности, не так уж и велик...
__________________
Искренне Ваш, Джек.


Последний раз редактировалось JackFromChaos; 16.01.2011 в 01:10.
Старый 16.01.2011, 00:38
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 9  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Имхо множественное наследование - это геморрой)))

Видимо я не один такой. С множественным наследованием в разы проще запутаться в своей же иерархии.
Интерфейсы многое решают, единственное что меня смущает в интерфейсах - я должен в любом случае переопределять заявленные в интерфейсе методы. Т.е. интерфейс он типа как просто обязалово для разраба, мол хочь не хочь, а вот этот набор методов ты должен описать, раз уж интерфейс имплементируешь.

В остальном же - я не знаю ситуаций где множественное наследование уж настолько необходимо, гораздо проще для понимания именно композиция, та и пользоваться удобнее, пофиг что лишняя точка в имени метода/параметра появляется.

Добавлено через 1 минуту
И вся ветка кажись завязалась вокруг диспатчера, с ним вообще проблем не вижу, та и примеров накидали кучу уже.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 16.01.2011, 01:06
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 10  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
JackFromChaos, зачем писать точно такой же код, если он уже написан в посте номер 21?


Последний раз редактировалось i.o.; 16.01.2011 в 01:10.
Создать новую тему Ответ Часовой пояс GMT +4, время: 05:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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