gpt4 book ai didi

java - 模拟订阅服务所需的模式

转载 作者:行者123 更新时间:2023-12-01 15:58:26 25 4
gpt4 key购买 nike

A 发布了 B、C 和 D 对象有兴趣了解的内容,而 E、F 和 G 不关心。

当 A 说某事时,只有 B、C、D 应该收到此“消息”。

什么设计模式有助于最好地模拟这一点?

**在不使用 Tibco 的情况下如何使用 Tibco?

最佳答案

在正常的 J2SE 应用程序中,事件的发布者和事件的订阅者是同一进程空间中的对象,这就是观察者模式。

订阅者通常会通过调用特定方法(例如 addListener())并实现特定接口(interface)来通知发布者他们想要监听事件。

因此,在您的示例中,假设我们创建一个接口(interface) NumberEventListener,它有一个方法 onNumberEvent(int number)

您的监听器都将实现 NumberEventListener 并在发布者对象上调用 addListener()。

过滤可以应用于发布者端或监听器端。因此,对于您的实现,您可以将 addListener() 方法设置为 addListener(NumberEventListenerlistener, int min, int max),并且仅当数字在 min 和 max 之间时才会调用您的监听器。然而,这不是典型的实现,因为它使发布者代码更加复杂,并且您无法真正灵活。

在这样的示例中,监听器通常会接收所有相应的事件并丢弃他们不感兴趣的事件。但是,这在一定程度上取决于实际的现实场景。

监听器是“同时”还是按顺序收到通知取决于事件发布者是按顺序调用监听器还是在单独的线程中调用监听器。

关于java - 模拟订阅服务所需的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com