【问题标题】:How to reduce coupling when waiting for client message等待客户端消息时如何减少耦合
【发布时间】:2018-04-20 15:28:20
【问题描述】:

我目前正在设计一个服务器-客户端游戏,并希望减少游戏中紧耦合依赖项的数量。基本上,我希望客户端在收到来自服务器的消息时更改其状态。伪代码看起来像这样:

    switch(inputThread.getMessage()){
    case "dead":
        die();
        break;
    case "heal":
        heal();
        break;
    }

问题在于,更改在服务器状态上发送的内容需要我也更改客户端状态,如果我想发送大量消息,这可能会出现问题。我可以使用什么设计模式来解耦客户端和服务器?

【问题讨论】:

  • 在客户端和服务器之间,你需要一些耦合。但是,我会摆脱 switch 语句并将其替换为例如 chain of responsibility
  • 考虑将所有消息设为枚举(可能带有一个或两个参数)。这样,您只需更改一个文件,并且当您切换到默认设置时,您可以检测到遗漏。客户端和服务器都需要理解消息,因此很难解耦。

标签: java oop design-patterns server client-server


【解决方案1】:

您可以利用Command Pattern。这样,每个操作都可以封装在一个具体的命令对象中并发送到服务器端。 命令实例可以包含所需的参数并在服务器端执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多