【问题标题】:Design advice for xml parserxml解析器的设计建议
【发布时间】:2011-06-21 05:07:05
【问题描述】:

我有一个 xml 数据。我需要根据这些数据创建对象。到目前为止,我使用一个类来解析 xml 数据和管理对象状态。我可以看到班级的凝聚力非常低。所以我想把解析的责任交给另一个班级。作为一个简单的想法,我可以使用工厂模式进行 xml 解析和从 xml 数据创建对象(我的对象有一个公共基类)。但是我应该如何将创建的对象返回给消费者类。容器类对象实例(列表、地图等)?一个一个(当一个节点解析时)?

我愿意接受不同的设计建议。

【问题讨论】:

  • 您使用什么语言/平台?

标签: xml oop parsing design-patterns creation


【解决方案1】:

您可能想要检查为您执行此类操作的库。例如简单: http://simple.sourceforge.net 或 JAXB: http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding

【讨论】:

  • 我不需要使用那种库。我已经有这个任务的课程。在第二个答案中查看我的评论。
  • @onurozcelik:对不起,我想我还是没听懂你的问题。您正在询问如何将对象(您刚刚从 xml 文件中反序列化的对象)返回给消费者类。你的整体方法如何?是不是像一个大的配置文件一样,“每个人”都可以从中提取其配置?还是(取消)序列化一直在发生?你缓冲未序列化的数据吗?它是一种选择吗?类会轮询标签吗?
【解决方案2】:

必须有一个适用于您的语言/平台的现有解析器。我的建议是问问自己是否真的需要重新发明这样的东西。

【讨论】:

  • 我想你误会了。对不起,我的解释很糟糕。我不会编写 DOMParser 或 SAXParser 类。假设我有 xml 格式的员工数据,并且需要从这些数据创建员工对象。我不想将 xml 读取和员工对象创建责任交给一个班级。我应该如何设计我的课程。我的问题正是这个。
  • @onurozcelik - 我相信肖恩的回答直接解决了这一点。他建议在 C++ 中必须有一个等效的 JAXB (Java) 来处理对象到 XML 的转换。
  • 虽然这并不能回答您的问题,但绝对相关且值得了解:stackoverflow.com/questions/87621/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 2023-04-02
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多