Если компоненту был по невнимательности добавлен одини тот же listener, то сообщение будет обработано два раза, что не всегда желательно. Есть ли какой-то инструмент, позволяющий отследить такие вещи? Грубо говоря, нечто вроде Singleton — шаблона для listener (не знаю как выразиться лучше).
espada_de пишет:
> Если компоненту был по невнимательности добавлен одини тот же listener,
> то сообщение будет обработано два раза, что не всегда желательно. Есть
> ли какой-то инструмент, позволяющий отследить такие вещи? Грубо говоря,
> нечто вроде Singleton — шаблона для listener (не знаю как выразиться лучше).
> Дважды добавленный listener <?mid=1788210> Оценить
Не очень понял вопрос. Может это имеется ввиду
Set<Listener> listeners = new HashSet<Listener>();
public void addListener ( Listener listener)
{
listeners.add(listener);
}
В множество хоть 10 раз может добавлять.
--
WBR Денис Цыплаков /* jabber UID: denis.tsyplakov@jabber.ru */
Знающий не говорит, говорящий не знает
Posted via RSDN NNTP Server 2.0
Здравствуйте, espada_de, Вы писали:
_>Если компоненту был по невнимательности добавлен одини тот же listener, то сообщение будет обработано два раза, что не всегда желательно. Есть ли какой-то инструмент, позволяющий отследить такие вещи? Грубо говоря, нечто вроде Singleton — шаблона для listener (не знаю как выразиться лучше).
"Мы тут сделали баг, но чинить его не хотим, подскажите как ещё его забороть..."
В общем случае разработчик слушателей не может управлять ни коллекцией слушателей, ни рассылкой событий. Так что если вы не можете починить подписку. То другой вариант решения сильно зависит от того что у вас за система событий. Например, можно ли перед добавлением проверить зарегистрирован ли этот слушатель?
Ну, а если у вас всё под контролем, то
вариант, предложеный ДенисомАвтор: Денис Цыплаков
Дата: 17.03.06
вам поможет.
Здравствуйте, Blazkowicz, Вы писали:
B>"Мы тут сделали баг, но чинить его не хотим, подскажите как ещё его забороть..."
Эдак можно сказать, что и Singleton и auto_ptr<...> ( в C++ ) не нужны и программист должен так программировать, чтобы ошибки не возникали вообще
B>Ну, а если у вас всё под контролем, то вариант, предложеный ДенисомАвтор: Денис Цыплаков
Дата: 17.03.06
вам поможет.
Вариант Дениса — это то, что нужно, спасибо.