【发布时间】:2011-05-19 15:29:57
【问题描述】:
我正在实现Builder Pattern 以生成一组对象。然后必须将这些对象序列化为 XML 并从 XML 反序列化。
我知道如何执行序列化和反序列化,但是我不确定如何将其集成到设计模式中。
例如,假设我的代码使用构建器来创建产品 foo 和 bar。我的第一个想法是在每个产品上都设置一个序列化函数,因为每个产品都知道要序列化什么。
我的下一个想法是将反序列化放在 Director 或 ConcreteBuilder 中。
我不喜欢的是序列化和反序列化函数将位于不同的位置 - 一个在文件中用于声明 foo 和 bar 对象,另一个在文件中用于其他内容。我担心在我处理产品类时它们最终可能会变得不同步。
我最后的想法是让 Director 或 ConcreteBuilder 执行序列化和反序列化。我不喜欢的是产品必须知道使用了哪个构建器或知道导演是谁。
澄清一下 - 可以创建产品的情况有两种:
- 用户点击用户界面中的按钮
- 用户加载一个 XML 项目
【问题讨论】:
标签: c# xml design-patterns