C++对象模型转换?

问题描述:

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

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

+0

是的。我想我可以通过声明性工具节省很多工作,我只需指定转换函数,它就会为我生成代码... – Frank 2012-02-28 17:20:40

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

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

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

+0

听起来很有趣。我会调查一下。谢谢! – Frank 2012-02-28 17:33:20