如何存储多个事件类型的侦听器

时间:2012-07-09 13:42:45

标签: java observer-pattern

我正在尝试使用Java中的多个侦听器和多个事件类型实现Observer / Listener模式。每个事件侦听器都可以对一个或多个事件类型感兴趣。

为每个特定事件类型存储侦听器并迭代它们的最有效方法是什么(列表列表,可能)?

当然,强烈建议使用线程安全解决方案。

3 个答案:

答案 0 :(得分:4)

您可以将java.util.concurrent.ConcurrentHashMap用于线程安全哈希映射。

您需要的结构是:

ConcurrentHashMap<EventType,List<Listener>> map;

这样,每个侦听器都注册了几种事件类型。

答案 1 :(得分:0)

也许您正在寻找EventListenerList课程?但我可能误解了你。

答案 2 :(得分:0)

看看EventListenerList。它包含实现EventListener的任何内容的列表。然后,您可以调用getListeners(class)来获取class类型的侦听器。