我正在尝试组装一个rmi聊天服务器,它有多个房间。然而,作为rmi的新手,我不确定如何正确地实现观察者模式,或者我的前提是否有任何意义。
我有一个ChatServer对象和一个ChatUser(客户端)对象。ChatServer包含ChatRoom对象的列表。
每个ChatRoom扩展UnicastRemoteObject。但是,我希望在这里实现observer模式,并且让ChatRoom也扩展Observable,这当然是java无法做到的。
其思想是使用observer模式让所有客户机在ChatRoom收到新消息时接收更新。
我想知道在这种情况下是否有办法实现某种观察者模式?我已经对google做了初步的检查,但是我遇到的大多数解决方案都很复杂,或者有点过头了。
否则,我在这里做事情的方式是否有根本性的错误(从我给出的非常简短的想法来看)?
提前感谢;)

最佳答案

是的,您可以在register(ChatClient)接口中简单地声明ChatRoom方法。ChatClient将需要扩展Remote并作为远程对象导出,就像您的ChatServerChatRoom接口一样。ChatClient将声明一些回调方法来接收来自聊天室的消息。

10-07 17:01