java处理来自RMI服务器的对象并将其委托给客户端中的对象
我正在使用RMI创建一个即时聊天应用程序。服务器通过我需要客户端处理的某些对象发送数据。
例如,服务器将发送一个JoinedGroupOperation
类。在我的客户机应用程序中,我需要识别该类并让我的处理程序接管(HandleJoinedGroupOperation
)。这个类将在客户端完成大量工作
我的问题是如何处理来自服务器的类,这样就不需要执行任何if语句?即
if(server.getResponse() instanceof JoinedGroupOperation){
HandleJoinedGroupOperation handle = new HandleJoinedGroupOperation();
handle.foo();
}
# 1 楼答案
在您的案例中,一个可能的选择是使用chain of responsibility设计模式。 您应该为可能的处理程序创建一些抽象(如
HandleJoinedGroupOperation
),然后链接这些处理程序(最好在开始时)。例如,创建一个接口其中
Operation
也是所有可能操作的基本类型。此类型(Operation
)可以包含枚举类型OperationType的字段:然后在具体的处理程序中,您只需检查该字段(尽管它将包含
if
语句,但这些语句将封装在每个特定的处理程序中)作为一个简单的示例,这里是处理程序的默认实现
在这种情况下,
server.getResponse()
方法只会返回Operation
层次结构的基本类型同时阅读文章以获得更多信息