【问题标题】:What kind of architecture is the best for communicating devices?什么样的架构最适合通信设备?
【发布时间】:2012-09-11 11:42:37
【问题描述】:

我正在开发两个应用程序。第一个是桌面java 应用程序,第二个是Android 应用程序。 这两个应用程序之间必须进行通信。

现在,它们通信传递 XML 文件并随后进行解析。问题是有很多不同的 XML,当我解析它们时,我需要知道你需要构建什么对象。

目前我解析XML 的根,并根据名称解析“switch”结构中的其余部分。它有效,但我认为这不是最好的方法。

有人知道已经定义的设计模式或架构可以帮助我吗?

【问题讨论】:

    标签: android xml design-patterns architecture xml-parsing


    【解决方案1】:

    如果我猜对了,您正在对 XML 进行序列化/反序列化,以便您的应用程序进行通信,因此在通道的两端您都有对象。

    如果是这样,JAXB 应该可以满足您在桌面端的需求,因为我不知道它是否已经与 android 一起提供,或者您的 android 应用程序是否有 apk 大小限制。

    如果你已经这样做了,而你唯一的问题是如何摆脱“开关”,最终总会有某种选择,它可能是一条语句,也可能是配置文件中的值,但本质上这就是你的工厂模式,但我会在abstract factory pattern 中阅读更多内容,你已经掌握了它的基础知识,也许只是对其进行润色,或者将值移动到配置文件并自动化创建过程,我敢肯定,这将需要一个通用的对象接口。

    希望有帮助

    【讨论】:

      【解决方案2】:

      我建议使用XML namespaces 而不是根元素名称。这就是您区分对象并在必要时使用XML Schemas 对其进行验证的方式。

      除此之外,我认为您的协议应该是RESTful,并牢记HATEOAS。 XML 是这种架构的最佳语言。

      【讨论】:

      • 感谢您的解决方案,但最后我使用了抽象工厂模式。无论如何,我要感谢您的评论。
      • 为您最喜欢的答案投票并选择其中一个作为最佳答案 - 这就是您在此网站上说“谢谢”的方式
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多