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



我真的需要您在可以使用的设计模式方面的帮助,因为现在我无法想到最好的解决方案。

我需要可以完成以下操作的东西。目前我有3个对象:

NotificationOne.java

NotificationTwo.java

NotificationThree.java

每个,基本上代表同一件事,但是在字段/属性方面,它们没有任何共同点。

这些实际上是一些JSON,当它们通过JMS队列到达时,我将将其映射到对象中。

现在,我真正需要做的是通过以特定方式为每个对象解释其字段,将这3个对象转换为一个共同的对象。到现在很容易完成。

真正的问题是,考虑到及时会有越来越多类型的通知,将必须从某些事物转换为一个共同的对象。

事物的流程将是这样的:

-json进入队列

- 我会将JSON映射到Pojo

- 将POJO访问到可能的工厂,该工厂必须处理每种类型的通知类,因此它可以将其转换为我们将其称为 commonNotification 的东西。

- commonNotification 必须存储到db

- 必须将一个特定的通用通用字段用作通知有效载荷。

基于此流程,我可以使用的最佳模式是什么。

预先感谢。

您是说转换取决于通知的类型?就像Zapl所说的那样,在这种情况下,我将创建一个通用的界面,并让三个通知类进行转换。设计非常简单。每个创建新通知的人都知道它应该实现界面,因此知道应该进行转换。

从理论上讲,

严格地说,您是对的,因为Pojo应该是Pojo,但是在这种情况下,我不会使我的设计比所需的更复杂。界面和多态性是去这里的方式。

接下来,创建一个通知的系统中没有任何副作用。因此,这并不是您的POJO正在修改任何系统状态。它只是具有非常特定于Pojo的逻辑。它属于pojo。

使用装饰器图案。

Concretedecorator只是将责任添加到原始 组件。

您可以使用不同的混凝土装饰器来用于不同的输出,但是如果您想要的话,您的原始组件的责任将在每个输出中都存在。

请参阅http://www.oodesign.com/decorator-pattern.html

最新更新