在保存和加载不同的文件格式时,是否有一种很好用的模式?
例如,我有一个复杂的文档类层次结构,但我想支持几种不同的文件格式。
我考虑过策略模式,但我不相信,因为需要访问对象的每个部分才能保存和加载它。
最佳答案
您可以使用 Visitor Pattern ,它允许迭代您的层次结构,根据访问者当前正在处理的节点执行不同的操作。
坏消息:你可能需要在层次结构的顶部至少添加一个虚方法,并且可能在一些派生类中重新定义它,访问者仍然访问节点的数据,但是你解耦了文件格式,作为不同的访问者实现可以写入以不同方式收集的数据。
也看看 memento pattern如果隐藏类层次结构数据是必须的。 This article也可能有帮助。
编辑:原始链接 Memento pattern article使用谷歌缓存
关于design-patterns - 保存和写入不同文件格式的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/81288/