我遇到了在应用更新期间保持向后兼容性的问题。我有一个客户端-服务器架构,客户端向服务器发送一些信息,并作为响应接收最新数据。在下一个版本的应用程序中,添加了一些新的字段和方法。如果我使用旧客户端版本,服务器上可能会出现一些错误(如空指针或不正确的工作流程)。我可以检查 null 的新功能,但是当有 3-4 个不同版本的客户端时 - 我们会有意大利面条代码和许多潜在的隐藏错误。
是否有任何设计模式可以帮助解决这个问题?如何对不同的客户端版本做出反应?
先感谢您。
我遇到了在应用更新期间保持向后兼容性的问题。我有一个客户端-服务器架构,客户端向服务器发送一些信息,并作为响应接收最新数据。在下一个版本的应用程序中,添加了一些新的字段和方法。如果我使用旧客户端版本,服务器上可能会出现一些错误(如空指针或不正确的工作流程)。我可以检查 null 的新功能,但是当有 3-4 个不同版本的客户端时 - 我们会有意大利面条代码和许多潜在的隐藏错误。
是否有任何设计模式可以帮助解决这个问题?如何对不同的客户端版本做出反应?
先感谢您。
试试这种方法:在每个客户端消息的登录消息中添加一个版本字段。
如果您没有会话,则后者有效。如果缺少版本字段,您就知道它是“版本 0”。
在服务器上,根据版本字段向处理程序发送消息。许多处理程序可以拆分为一个抽象基类,该基类处理常见情况以及每个消息版本的简单扩展。
这使您可以避免意大利面条式代码。
我想看看适配器模式。这可以用来使不同的类一起工作。
一些技巧: