我正在开发两个应用程序。第一个是桌面java
应用程序,第二个是Android
应用程序。这两个应用程序必须在它们之间进行通信。
现在,它们通信传递 XML 文件并进行解析。问题是有很多不同的 XML,当我解析它们时,我需要知道你需要构建什么对象。
目前,我解析 的根,XML
并根据名称解析“switch”结构中的其余部分。它有效,但我认为这不是最好的方法。
有人知道已经定义的设计模式或架构可以帮助我吗?
我正在开发两个应用程序。第一个是桌面java
应用程序,第二个是Android
应用程序。这两个应用程序必须在它们之间进行通信。
现在,它们通信传递 XML 文件并进行解析。问题是有很多不同的 XML,当我解析它们时,我需要知道你需要构建什么对象。
目前,我解析 的根,XML
并根据名称解析“switch”结构中的其余部分。它有效,但我认为这不是最好的方法。
有人知道已经定义的设计模式或架构可以帮助我吗?
如果我猜对了,您正在对 XML 进行序列化/反序列化,以便您的应用程序进行通信,因此在通道的两端都有对象。
如果是这样,JAXB 应该可以满足您在桌面端的需求,因为我不知道它是否已经带有 android,或者您的 android 应用程序是否有 apk 大小限制。
如果你已经这样做了,而你唯一的问题是如何摆脱“开关”,最终总会有某种选择,它可能是一条语句,也可能是配置文件中的值,但本质上那是你的工厂模式,但我会更多地阅读抽象工厂模式,你已经掌握了它的基础知识,也许只是抛光它的问题,或者将值移动到配置文件并自动化创建过程,我敢肯定,这将需要一个通用的对象接口。
希望有帮助
我建议依赖XML 命名空间而不是根元素名称。这就是您区分对象并在必要时使用XML Schemas验证它们的方式。