我有XML文件,代表HTML代码的一部分 这些XML文件也有小部件声明 示例XML文件:
<message id="msg">
<p>
<Widget name="foo" type="SomeComplexWidget" attribute="value">
inner text here, sets another attribute or
inserts another widget to the tree if needed...
</Widget>
</p>
</message>
我有一个主要的Widget类,我的所有小部件都继承自 问题是我将如何创建它? 以下是我的选择:
您认为哪种更好?你们能提出更好的解决方案吗?
答案 0 :(得分:1)
我不确定您发布的变体,但最简单的方法(不是最有效的,更像“get-it-done”方法)将为boost::serialization
库编写加载包装器。
在这种情况下,您必须调用反序列化例程,指向文件(或它的映射部分)并检索可以在窗口小部件容器中注册的构造对象。
请注意,您可能不需要编写相应的保存(序列化)例程,只需编写加载例程。
另请注意,您可以将一些简单(可能是自我实现的)解析器与反序列化例程结合使用,例如,第一个解析器会抓取与您的Widget
相关的代码,第二个从中构造一个对象。
答案 1 :(得分:1)
创建工具,将其包含在构建步骤中,一切都会好的。
有关其他详细信息,请参阅我之前回答的评论。