【发布时间】: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