1

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

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

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

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

4

2 回答 2

2

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

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

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

希望有帮助

于 2012-09-11T12:54:03.500 回答
0

我建议依赖XML 命名空间而不是根元素名称。这就是您区分对象并在必要时使用XML Schemas验证它们的方式。

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

于 2012-09-11T12:54:05.870 回答