【发布时间】:2010-06-01 17:09:06
【问题描述】:
我有代表 HTML 代码的一部分的 XML 文件。
这些 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 类,我的所有小部件都继承自该类。
问题是我将如何创建它?
以下是我的选择:
- 创建一个编译时工具,它将解析 XML 文件并创建必要的代码来将小部件绑定到所需的对象。
- 优点:
- 不会给系统带来额外的运行时开销。
- 绑定设置器很容易。
- 缺点:
- 向构建链添加另一个步骤。
- 难以维护,因为系统中的每个小部件都应添加到解析器中。
- 使用宏绑定小部件。
- 复杂代码
- 优点:
- 找到一种将所有小部件自动注册到工厂的方法。
- 优点:
- 所有绑定都是完全自动完成的。
- 比选项 1 更易于维护,因为每个新小部件只需调用注册它的 WidgetFactory 方法。
- 缺点:
- 不知道如何在不引入可维护性噩梦的情况下绑定 setter。
- 增加内存和运行时开销。
- 复杂代码
- 优点:
你觉得哪个更好?你们能提出更好的解决方案吗?
【问题讨论】:
标签: c++ factory factory-pattern