在RMI上实现观察者模式

时间:2014-01-10 20:30:45

标签: java rmi observer-pattern

我正在尝试组建一个具有多个房间的RMI聊天服务器。但是,作为RMI的新手,我不确定如何正确实现观察者模式,或者我的前提是否真的有意义。

我有一个ChatServer对象和一个ChatUser(客户端)对象。 ChatServer包含ChatRoom个对象的列表。

每个ChatRoom扩展UnicastRemoteObject。但是,我希望在这里实现观察者模式,并ChatRoom也扩展Observable,这当然不能用Java完成。

我们的想法是使用观察者模式让所有客户端在ChatRoom收到新邮件时收到更新。

我想知道在这种情况下是否有实际实现某种观察者模式的方法?我已对Google进行了初步检查,但我遇到的大多数解决方案往往非常复杂,或者有点太过分了。

否则,我在这里做事的方式是否存在根本性的错误(来自我给出的非常简短的想法)?

提前致谢;)

1 个答案:

答案 0 :(得分:1)

是的,您只需在register(ChatClient)界面中声明ChatRoom方法即可。 ChatClient需要扩展Remote并作为远程对象导出,就像您的ChatServerChatRoom接口一样。 ChatClient会声明一些回调方法,以便从聊天室接收消息。