gpt4 book ai didi

用于命令/状态消息管理的Java设计

转载 作者:行者123 更新时间:2023-11-30 08:16:39 24 4
gpt4 key购买 nike

我正在开发一个 java TCP 客户端,它由一组作为 XML 消息的命令组成。客户端应能够与特定用户界面异步发送命令,从服务器接收确认消息和状态(如果有)。我还指定了特定的 GUI 来配置每个命令的数据。客户端包中的各种 View 和 Controller 必须可以访问不同的命令数据模型。

问题很简单,但我想以正确的方式解决它,因为客户端和服务器之间的接口(interface)规范确实会发生变化(新消息、一个项目中使用的消息但另一个项目中没有使用的消息、重复的消息但一个项目中使用的消息)参数不同,等等...)所以,我正在寻找的可能是一种设计模式或一个可以满足我的需求的组合模式,或者如果你们中的任何人必须制作这样的客户,并且可以给我一些关于什么的建议做或不做。

最佳答案

从我的角度来看,我建议使用发布/订阅模型。作为实现,您可以使用 EventBus来自谷歌 Guava 。

public class MyEvent {
String description;

public MyEvent(String description){
this.description = description;
}
}

下一个组件是能够接收事件的订阅者:

public class MySubscriber {
@Subscribe
public void handleMyEvent(MyEvent event) {
//do some logic
}
.....

最后一部分是将事件发布到事件总线中:

EventBus eventBus = new EventBus();
MySubscriber mySubscriber = new MySubscriber();
eventBus.register(mySubscriber);

eventBus.post(new MyEvent("Some description"));

您现在可以在应用程序的不同部分注册订阅者并对传入事件使用react,例如。 XML消息事件

关于用于命令/状态消息管理的Java设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29561225/

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