1

亲爱的 stackoverflow 社区。目前,我正在做一个项目。这个项目应该有一个服务器和客户端连接到它。由于它们的简单性,我想使用 Java 的集成 ServerSockets 和 Sockets。

在我的项目中,数据应从客户端发送到服务器并相反。

我最初的想法是发送 JSON,然后将其解析为接收器并从中获取数据。不过我有点不确定,因为 JSON 不是集成到 Java 中的东西,而是来自 Java 脚本。另外,我目前正在使用多线程套接字服务器,所以我有一个 ClientHandler 线程类。在那个类中,消息被接收、解析并从 JSON 中读取“action”参数,然后我做了一个包含多个动作及其功能的 switch 语句。我认为这也不是一个好方法。

所以,我的问题是:我怎样才能做得更好,也许我必须使用其他东西?

提前致谢。

4

1 回答 1

2

JSON 确实是从 JavaScript 发展而来的,但它本身就是一种合理的定义语言,我看不出有任何理由不应该使用它。有用于解析它的库,因此您不必这样做。

假设您的 JSON 结构因不同目的而不同,并且足够复杂以至于需要不同的类来表示它们,我喜欢 JSON 有一个参数来标识它所属的类的想法,之后您可以将解析交给一个类即理解指定的输出。然后一个类可以读取 JSON,获取类型,并且一些特定的解析例程可以从那里转到为此目的创建的对象。

我也看不出动作字符串有什么问题;毕竟,它对于 Swing 和其他一些 UI 来说已经足够好了。而不是分支到一个函数,再次取决于复杂性,你可以拥有所有实现一个接口的动作类,并且动作“动词”可以告诉你哪个(从地图中,比如说?)获取并执行' performAction()' 方法或任何你想调用的方法。

我不知道从快速描述中这有多清楚;如果您关心它,愿意在 SO 聊天室中谈论它。

于 2020-05-20T20:17:27.977 回答