Цитата:
Сообщение от TommyLee
Некорректно выразился. Хотел сказать, что функционал подписка-оповещение вынесен в отдельный класс, вместо того, чтобы реализовать его в Event. Для меня это нелогично, но я не профессионал, поэтому хочется узнать причины такого шага, чтобы повысить свой уровень.
|
Ну вот представьте, у вас есть 2 экземпляра одного и того же класса, они оба диспатчат событие "change" но разница в том, что один из экземпляров его диспатчит 1 раз в минуту, а другой - 10 раз в секунду. А вы просто подписались на событие "change", теперь:
- 599 вызовов обработчика собыя будут "мимо".
- один лиший слушатель при перечислении всех слушателей, которое это событие должно оповестить.
- лишняя логика в обработчике событя по вычислению, а кто же его вызвал.
Но, опять же, с другой стороны никто не говорит, что события круче всего, а все остальное - плохо, если вам такой функционал не нужен, реализуйте сами что-нибудь поскромнее.
Вот такой например вариант "подписки" на изменеие ширины:

Код AS3:
public function set widthListeners(value:Vector.<Function>):void
{
for each (var f:Function in value)
{
if (_widthListeners.indexOf(f) < 0)
_widthListeners.push(f);
}
}
public override function set width(value:Number):void
{
for each (var f:Function in _widthListeners)
{
f(super.width, value);
}
super.width = value;
}