首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java应用更新过程中实现向后兼容?

如何在Java应用更新过程中实现向后兼容?
EN

Stack Overflow用户
提问于 2012-10-02 17:20:12
回答 3查看 1.1K关注 0票数 2

我遇到了在应用程序更新期间保持向后兼容性的问题。我有一个客户端-服务器架构,客户端向服务器发送一些信息,作为响应,接收最新的数据。在应用程序的下一个版本中,添加了一些新的字段和方法。如果我使用旧的客户端版本,服务器上可能会出现一些错误(如空指针或不正确的工作流)。我可以检查新特性是否为空,但当有3-4个不同版本的客户端时-我们会有意大利面条状的代码和许多潜在的隐藏错误。

有什么设计模式可以帮助解决这个问题吗?如何应对不同的客户端版本?

谢谢你,提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-02 17:26:00

尝试这种方法:在每个客户端消息的登录消息中添加一个版本字段。

如果您没有会话,则可以使用后一种方法。如果版本字段丢失,您就知道它是“版本0”。

在服务器上,根据版本字段将消息分派给处理程序。许多处理程序可以拆分成一个抽象基类,用于处理常见情况以及每个消息版本的简单扩展。

这使您可以避免意大利面条代码。

票数 3
EN

Stack Overflow用户

发布于 2012-10-02 17:22:07

我要看一下Adapter pattern。这可以用来让不同的类一起工作。

票数 2
EN

Stack Overflow用户

发布于 2012-10-02 17:45:53

一些小贴士:

  • Add a version number to the message的新版本。这将有助于每个消息版本的lot!
  • Create验证例程。这有多种用途:您可以验证消息实际上是正确的,因为它是声明的版本号,您可以计算出没有版本号的消息的vesrion,您可以在运行时验证输入,它将帮助您进行测试。对照XML schema进行验证对于尽早this.
  • Handle消息版本非常有用--也就是说,在收到消息后,您的代码立即看到消息版本。越早解决版本问题,需要处理多个版本的代码库就越少。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12687632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档