创建发布 - 订阅模式以集成到DAO模式

时间:2010-01-18 15:31:52

标签: java design-patterns oop publish-subscribe

基于问题(How to create a client notification service for a webapp or should I use an Observer Pattern?),我想知道。

我有一个完全实现的DAO,实体bean只包含getter和setters方法。每个实体都映射到EntityManager。

目前无法通知用户任何添加/删除/更新的更改到持久存储(如数据库)。

我想知道,我将如何实现Publish-Subscribe模式(也称为Observer模式),这样我就不必扩展当前的DAO架构。我不希望我的实体继承发布者,因为并非所有实体都可以更新。

如果有任何工具/框架/库可以用于我的情况,请告诉我。另外,我根本没有使用任何持久性框架(Hibernate等框架),DAO管理器和Factory完全是从头开始编写的。

此致

2 个答案:

答案 0 :(得分:1)

我的第一个建议是在你的DAO中嵌入一个可观察对象。然后你会让你的潜艇看看这个物体​​(过去我做过类似的事情)。

我的另一个建议是你可以为数据库本身添加一个触发器。如果您的应用程序之外的任何内容可能会更改您要通知子服务器的数据库,那么这将非常有用。

祝你好运。

答案 1 :(得分:1)

我正在构建一个类似的概念......我不关心所有事件,也不关心我们想要关注不同事件的项目。因此,我们正在构建一种模式,其中所有DAO操作都提交给DROOLS Fusion,并且基于规则和一些时间推理,它通过通知架构通知听众。根据您的需要,架构可以是简单的听众或JMS或电子邮件......无论如何。如果您没有标准,只关心DAO事件的回调,然后让您的DAO插入,更新,删除操作将对象提交给侦听器或某种类型的JMS队列。

希望很清楚...