Дважды добавленный listener
От: espada_de  
Дата: 17.03.06 08:38
Оценка:
Если компоненту был по невнимательности добавлен одини тот же listener, то сообщение будет обработано два раза, что не всегда желательно. Есть ли какой-то инструмент, позволяющий отследить такие вещи? Грубо говоря, нечто вроде Singleton — шаблона для listener (не знаю как выразиться лучше).
Re: Дважды добавленный listener
От: Денис Цыплаков Россия  
Дата: 17.03.06 09:08
Оценка:
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
Re: Дважды добавленный listener
От: Blazkowicz Россия  
Дата: 17.03.06 09:35
Оценка:
Здравствуйте, espada_de, Вы писали:

_>Если компоненту был по невнимательности добавлен одини тот же listener, то сообщение будет обработано два раза, что не всегда желательно. Есть ли какой-то инструмент, позволяющий отследить такие вещи? Грубо говоря, нечто вроде Singleton — шаблона для listener (не знаю как выразиться лучше).


"Мы тут сделали баг, но чинить его не хотим, подскажите как ещё его забороть..."
В общем случае разработчик слушателей не может управлять ни коллекцией слушателей, ни рассылкой событий. Так что если вы не можете починить подписку. То другой вариант решения сильно зависит от того что у вас за система событий. Например, можно ли перед добавлением проверить зарегистрирован ли этот слушатель?

Ну, а если у вас всё под контролем, то вариант, предложеный Денисом
Автор: Денис Цыплаков
Дата: 17.03.06
вам поможет.
Re[2]: Дважды добавленный listener
От: espada_de  
Дата: 17.03.06 10:53
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>"Мы тут сделали баг, но чинить его не хотим, подскажите как ещё его забороть..."

Эдак можно сказать, что и Singleton и auto_ptr<...> ( в C++ ) не нужны и программист должен так программировать, чтобы ошибки не возникали вообще

B>Ну, а если у вас всё под контролем, то вариант, предложеный Денисом
Автор: Денис Цыплаков
Дата: 17.03.06
вам поможет.

Вариант Дениса — это то, что нужно, спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.