我的项目基于客户端和服务器通信,其中在不同的位置,可能存在不同版本的服务器。客户端,基于最近的服务器的版本号使用特定的存根文件与其通信。
现在,在编写代码时,在我使用存根的每个地方,我都必须检查存在哪个版本的服务器。这似乎非常低效,因为代码中有很多地方我必须检查存根版本。
约束是客户端周围只有一个服务器。并且一旦客户端启动,它将与之通信的服务器将不会改变。我们使用 Jax RPC 进行通信。
对更好的设计有什么建议吗?
我的项目基于客户端和服务器通信,其中在不同的位置,可能存在不同版本的服务器。客户端,基于最近的服务器的版本号使用特定的存根文件与其通信。
现在,在编写代码时,在我使用存根的每个地方,我都必须检查存在哪个版本的服务器。这似乎非常低效,因为代码中有很多地方我必须检查存根版本。
约束是客户端周围只有一个服务器。并且一旦客户端启动,它将与之通信的服务器将不会改变。我们使用 Jax RPC 进行通信。
对更好的设计有什么建议吗?
依赖注入在这里有帮助吗?将特定于每个服务器版本的所有逻辑隔离到单独的类中,并使用诸如Google Guice之类的工具将所有特定服务器版本类组织到它们自己的模块中(即每个服务器版本一个模块)。然后,一开始只需要一次检查来查看要加载哪个模块。