我正在开发两个应用程序。第一个是桌面java
应用程序,第二个是Android
应用程序。
这两个应用程序必须在它们之间进行通信。
现在,他们传递传递XML文件并进行解析。问题是有很多不同的XML,当我解析它们时,我需要知道需要构建什么对象。
目前,我解析了XML
的根,并根据名称将剩余部分解析为“switch”结构。它有效,但我认为这不是最好的方式。
有人知道已经定义的设计模式或架构可以帮助我吗?
答案 0 :(得分:2)
如果我正确猜测你正在对XML进行序列化/反序列化以便你的应用程序进行通信,那么在通道的两端都有对象。
如果是这样,JAXB应该满足您在桌面端的需求,因为我不知道它是否已经安装了android或者你的Android应用程序有apk大小限制。
如果您已经这样做了,而您唯一的问题是如何摆脱“切换”,最终总会有某种选择,它可能是一个声明,或者配置文件中的值,但是在esscence中,这是你的工厂模式,但是我会在abstract factory pattern中读到更多内容,你已经掌握了它的基础知识,或许这只是抛光它,或者将值移到配置文件中并自动化创建过程,这需要我确定的对象的通用接口。
希望有所帮助
答案 1 :(得分:0)
我建议依赖XML namespaces而不是根元素名称。这就是你如何区分对象并在必要时使用XML Schemas验证它们。