我真的需要你关于我可以使用的设计模式的帮助,因为现在我想不出最好的解决方案。
我需要一些可以完成以下任务的东西。 目前我有 3 个对象:
NotificationOne.java
NotificationTwo.java
NotificationThree.java
每个都代表基本相同的事物,但在字段/属性方面它们没有任何共同点。
这些实际上是一些 JSON,当它们通过 JMS 队列到达时,我会将它们映射到对象中。
现在,我真正需要做的是将这 3 个对象转换为一个公共(public)对象,通过以特定的方式解释它们的字段。到目前为止很容易完成。
真正的问题是,考虑到随着时间的推移,将会有越来越多的通知类型,这些通知必须从某种东西转换为通用对象,那么应用的最佳设计模式是什么。
事情的流程将是这样的:
-JSON 进入队列
-我将把 JSON 映射到 POJO
-将 POJO 传递给可能的工厂,该工厂必须处理每种类型的通知类,因此它可以将其转换为我们称之为 CommonNotification 的东西。
-CommonNotification 必须存储到数据库
-CommonNotification 的特定字段必须用作通知负载。
根据这个流程,我可以使用的最佳模式是什么。
提前致谢。
最佳答案
您是说转化取决于通知类型?就像 zapl 所说,在这种情况下,我将创建一个公共(public)接口(interface)并让三个通知类进行转换。设计非常简单。每个创建新通知的人都知道它应该实现该接口(interface),因此知道应该进行转换。
严格来说,从理论上讲,POJO 应该是 POJO,这是正确的,但在这种情况下,我不会让我的设计变得比所需的更复杂。接口(interface)和多态性是解决问题的方法。
此外,创建公共(public)通知不会对系统产生任何副作用。所以这并不是说你的 POJO 正在修改任何系统状态。它只是有一些 POJO 特定的逻辑。它属于 POJO。
关于java - 事件队列条目的设计模式请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22210277/