加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:我自己的API中有哪些事件通知选项?

发布时间:2020-12-15 08:38:08 所属栏目:Java 来源:网络整理
导读:假设您已经编写了一个API,它可以在一个独立的线程中实时收集数据.数据访问是线程安全的,并通过接口.例如. getData()不阻止并提供最新信息.该API用于许多应用程序;一些GUI驱动,其他控制台程序. 您有什么选择通知您的应用程序有数据更新?我们绝对不希望API依
假设您已经编写了一个API,它可以在一个独立的线程中实时收集数据.数据访问是线程安全的,并通过接口.例如. getData()不阻止并提供最新信息.该API用于许多应用程序;一些GUI驱动,其他控制台程序.

您有什么选择通知您的应用程序有数据更新?我们绝对不希望API依赖于应用程序,因此我们不希望fireTableDataChanged()或类似的API. (在我们的GUI应用程序中,我们会在API通知我们或我们查看API之后调用fireTableDataChanged()等.)

非常感谢!

解决方法

一种选择是编写自己的事件生成器类.

> IEventListener<活动>
> IEventProducer< LISTENER扩展了IEventListener< EVENT>,EVENT>
> EventProducer< LISTENER扩展了IEventListener< EVENT>,EVENT>实现IEventProducer< LISTENER,EVENT>

IEventListener由观察者实现.它有一种接收事件的方法.

IEventProducer由任何observable通过EventProducer实现.它具有添加和删除侦听器的方法.

EventProducer是线程安全的.它有一个方法将事件发送到侦听器的CopyOnWriteArrayList.它捕获并记录侦听器抛出的任何异常.它还提供了添加和删除侦听器的方法.

然后,任何可观察的类都可以通过内部EventProducer实现IEventProducer.

如果尝试在同一个类上支持两种侦听器类型,则键入erasure将要求您为不同的侦听器命名不同的添加/删除侦听器方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读