java - 如何为多种事件类型存储监听器

标签 java observer-pattern

我正在尝试在 Java 中实现具有多个监听器和多个事件类型的观察者/监听器模式。每个事件监听器都可以对一种或多种事件类型感兴趣。

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

当然,强烈推荐线程安全的解决方案。

最佳答案

您可以使用 java.util.concurrent.ConcurrentHashMap用于线程安全 HashMap 。

你需要的结构是:

ConcurrentHashMap<EventType,List<Listener>> map;

这样,每个监听器都会注册到多个事件类型。

关于java - 如何为多种事件类型存储监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396267/

相关文章:

java - 应用程序 (.jar) 错误 - NoClassDefFoundError

java - 如何在Swing中获取不包括 "System Tray"的桌面大小

iPhone MKMapView注释观察者可选择一次

objective-c - 我应该什么时候移除观察者?在移除观察者之前释放对象时出错

Java 静态 ArrayList<Listener>

c++ - 使用什么设计模式?

Android - 为什么 ContentObserver 会调用自身?

java - 如何在Web应用程序中重新加载资源包?

JAVA - 在主线程中使用同步列表线程

java - 使用数组计算字符串中的上限和下限字符