1

在我的项目中,我使用了某种发布者/订阅者模式。

我想在我的发布者上有一个树形数据结构。每次我修改树中的任何内容(无论是结构更改还是节点值的修改),更改集都会发布给它的订阅者。

这些确实具有树的本地副本,并在接收到变更集时更改内部结构。连接到发布者时,任何订阅者都应首先请求整个树的深层副本。

有人知道执行上述操作的现有 java 库吗?

欢迎任何提示

4

1 回答 1

0

好的,既然我到目前为止找到了一个“解决方案”,我就在这里发布一般的想法。

我创建了一个实现java.util.Map接口的类。让我们调用这个类DMPublisher<K, V>,而K它是映射中的键类型和V值的类型。

还有另一个类也实现了地图接口,DMSubscriber<K, V>.

发布者类开始监听一个套接字,直到它被显式关闭。订阅者在创建时连接到此套接字。

发布者类具有用作缓存的真实哈希映射的属性。对于发布者上的每个操作方法,缓存中的相应项都会相应更改。现在通过上述套接字将更新发送给所有订阅者。

除了地图接口,订阅者还使用了可以附加的观察者模式监听器。从套接字接收的所有更新现在都分派给所有这些侦听器。

连接后,发布者将当前保存在缓存中的所有数据发送给其订阅者,以保持一致的状态。

这两个类都是同步的,以支持多线程。

如果有人对源代码感兴趣,请随时与我联系。

于 2013-05-15T16:57:20.350 回答