2012-02-28 74 views
0

我有2個系統有2個相關但略有不同的對象模型(一個模型有一個合作伙伴之間的合同關係類,另一個使用不同的但派生的概念(和不同的類))。我需要編寫一個「映射器」來導航第一個模型並生成第二個模型的實例(有容器,類......)。是否有工具/庫(最好是聲明性?),我可以用它來生成映射器代碼?C++對象模型轉換?

回答

1

沒有我知道的。通常你使用adapter pattern來編寫小包裝模塊。

+0

是的。我想我可以通過聲明性工具節省很多工作,我只需指定轉換函數,它就會爲我生成代碼... – Frank 2012-02-28 17:20:40

1

可能有更簡單的方法,但一種選擇是使用Boost :: Serialization,它允許您爲每個對象指定一個非常緊湊的序列化格式(如果不是嚴格聲明的話)。

然後,您可以將一組對象序列化爲XML,並使用XSLT將它們轉換爲另一組對象的格式。然後你反序列化另一組對象。

如果您正確指定了兩組對象的序列化,則可能會跳過整個轉換爲XML/XSLT步驟。

+0

聽起來很有趣。我會調查一下。謝謝! – Frank 2012-02-28 17:33:20