java如何在事件处理程序和回调中处理版本化对象
我的问题:
对于在处理程序或回调中反序列化的不同版本的对象,有没有最著名的方法
一些背景信息:
我们将使用序列化对象作为消息,在软件套件中的各个组件之间进行通信。它们可以是JSON格式,或者使用类似protobufs的东西。无论何时开始序列化对象,无论是用于长期存储还是在应用程序的不同版本之间,都必须能够处理这些对象的不同版本(可能使用Java注释或Attributes-C#)
我试图避免这样的代码:
onRecvMyMsg(MyMsg msg)
{
if (msg.version == 1.0)
// process it here
else if (msg.version < 1.5)
// process it here
else if (msg.version < 2.0)
// process part of it in the 1.5 handler and the other part here
else if // etc...
}
在多次添加/增强/更改之后,这似乎将是一场维护噩梦
当然,一定有人解决了这个问题,因为这似乎是软件工程中非常常见的做法。任何帮助或建议都将不胜感激
共 (0) 个答案