用于将标记树解析为对象模型的设计模式

时间:2009-03-18 13:11:06

标签: design-patterns parsing

我很难过,我有一个任务,我必须采取一些标记(json格式,而不是它真的很重要)并将其解析为对象模型。我们已经有了一个域模型,只需要运行标记并创建相关对象。

它不适合复合图案,因为正在创建的对象不相似。此外,标记不是那么大,只有三层深,所以我对组织模式比对原始速度更感兴趣。我真的想实现以下目标:

  • 避免使用包含大量嵌套循环的怪物方法
  • 将来轻松添加新标签/对象
  • 为下一个必须修改的人清除易于阅读的代码

有关适用于此的可能模式的任何建议吗?如果愿意的话,请随意提供任何语言的例子。

此致

克里斯

编辑:以下是标记示例 - link text

2 个答案:

答案 0 :(得分:2)

如果您正在查看标准标记(如JSON或XML),那么您可以使用大多数编程语言(如.NET C#,Java,Ruby,C ++)中提供的现成的低级解析器。等

此类解析器使用的模式是AbstractFactory,Composite,Singleton和Builder模式的组合。

您可以将Java的SAXParser和SAXParser Factory实现作为示例。

Class Diagram of Builder Pattern on WikiPedia
(来源:wikimedia.org

答案 1 :(得分:0)

看看以下链接 - 它涵盖了一些设计模式 - 并非所有设计模式都适用于您,但我猜测命令,收集参数和可插拔选择器都可以使用。

http://junit.sourceforge.net/doc/cookstour/cookstour.htm