0

我们有这种形式的类classA version1, classA version2, classA version3..等等。这是已经修改过的同一个类。每个“修改”都会创建一个类的新版本。每个对象都有一个版本属性,该属性指的是派生它的类的版本。例如ObjectA.version =1# 表示它来自ClassA version1

这是我的问题。在对象反序列化期间,我想使用用于制作对象的特定版本的类。例如,如果我要反序列化对象ObjectAversion=3那么ClassA version 3应该使用。存储类的所有不同变体的源代码。

这看起来首先获取对象然后获取类。关于如何解决这个问题的任何想法?

4

1 回答 1

0

你有三个选择:

  1. 自定义序列化/反序列化 - 您可以将版本信息和类信息放在首位。
  2. 创建一个包含所有类版本的所有成员的“联合类”,然后使用它来创建适当类的实例。
  3. 重构为一个公共基类,并让每个“版本”从该类继承。

我会推荐选项 3,因为这样您的版本可以干净地共存。

于 2012-04-23T15:23:27.633 回答