java - 事件队列条目的设计模式请求

标签 java design-patterns

我真的需要你关于我可以使用的设计模式的帮助,因为现在我想不出最好的解决方案。

我需要一些可以完成以下任务的东西。 目前我有 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/

相关文章:

Java 应用程序不显示输出

javascript - 将实例方法也用作静态方法是个好习惯吗?

java - 显示DTO对象的设计模式

asp.net-mvc-3 - 企业中业务实体验证的首选方法

java - OpenGL ES : Drawing using a Texture Atlas

java - 机器人:得到 child 的 child

java - 如何在jsp中获取img标签中的blob图像

java - 没有 bean 有资格作为此依赖项的 Autowiring 候选者

java - 使用一个 "catch all"setter 或 getter 时避免额外方法参数的设计模式?

javascript - 您认为哪个更好? Vue UI设计