|
|
1
2
对于序列化,可以使用某种查找:
对于反序列化,这两行:
不执行实际转换。他们唯一要做的就是在
当然,演员会成功的。但它不会以任何方式修改
|
|
|
2
3
在SpecialClass中考虑过serialize()方法吗?这样,如果有一些特殊的注意事项,可以重写base.serialize方法并处理任何唯一的需要。这样,它就已经知道它是什么了,并且不需要条件。 另一件需要考虑的事情可能是一个带有facade模式的helper类。然后可以有一个名为“public SpecialClass DeserializeSpecialClass()”的方法。然后,不必在反序列化程序中强制类型转换,而是可以在目标上强制类型转换。如果你发现你做了太多的转换,那么可以考虑将抽象方法添加到基类中,这个基类将在派生类中实现。 希望这有帮助。 |
|
|
3
0
|
|
|
4
0
如果不关心性能,可以使用反射来初始化其名称包含该类型名称的类型。
|
|
|
5
0
规则1./派生类应该负责序列化和反序列化它们自己,因为它们应该是唯一对存储在XML文档中的其他数据有深入了解的类。 所以从多形性的角度(注意上面的代码不是多态的)您可以做如下的事情
相当直接。但问题不在于序列化或多态行为,而在于从XML中实例化正确的类型。 解决这个问题的一种方法是在XML文档中有一个指定保存它的类型的键,并注册一个负责构造由该键索引的派生类型的工厂(属性有利于这种注册),一旦构造了派生类型,就使用它来反序列化XML。 注意,您的工厂也可以是基类上的静态方法。 比如(当然是未经测试的)。。。。
|
|
|
Eris · 纯虚拟成员有什么优势吗(除了他们可能防止的人为错误)? 3 年前 |
|
|
James Nguyen · Java多态性:为什么返回错误? 8 年前 |
|
|
Alex Cristea · 如何从另一个类的数组中打印特定行 8 年前 |
|
juztcode · C语言中的静态和动态分辨率++ 8 年前 |
|
|
Hugo · 具有多态关系的活动记录获取关联模型 8 年前 |
|
|
pooya13 · 机器代码层上虚函数和条件执行的区别 8 年前 |
|
|
Nisba · C中子类类型未知的模型类/子类++ 8 年前 |
|
|
R zu · 使用多次调用的可替换方法初始化 8 年前 |