C ++对象模型转换?

时间:2012-02-28 17:14:06

标签: c++ oop

我有2个系统,有2个相关但略有不同的对象模型(一个模型有一个用于合作伙伴之间的契约关系的类,另一个使用不同的,但派生的概念(和不同的类))。我需要编写一个“映射器”来导航第一个模型并生成第二个模型的实例(有容器,类......)。是否有可用于生成映射器代码的工具/库(最好是声明性的?)?

2 个答案:

答案 0 :(得分:1)

没有我知道的。通常使用adapter pattern编写小包装模块。

答案 1 :(得分:1)

可能有更简单的方法,但一种选择是使用Boost :: Serialization,它允许您非常紧凑地为每个对象指定序列化格式(如果不是严格声明的话)。

然后,您可以将一组对象序列化为XML,并使用XSLT将它们转换为另一组对象的格式。然后反序列化另一组对象。

如果正确指定了两组对象的序列化,则可以跳过整个转换为XML / XSLT步骤。