【问题标题】:Creating a Publish-Subscribe Pattern to integrate to the DAO pattern创建发布-订阅模式以集成到 DAO 模式
【发布时间】:2010-01-18 15:31:52
【问题描述】:

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

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

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

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

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

问候,

【问题讨论】:

    标签: java design-patterns oop publish-subscribe


    【解决方案1】:

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

    希望这很清楚......

    保罗

    【讨论】:

      【解决方案2】:

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

      我的另一个建议是您可以将触发器添加到数据库本身。如果您的应用程序之外有任何东西可以更改您想要通知您的子的数据库,这将特别有用。

      祝你好运。

      【讨论】:

      • 好吧,基本上发布-订阅模式将用于通知客户产品的变化,无论是添加了新产品还是更新/删除了当前产品。我的 bean 只是 getter 和 setter,所以我希望看到实体不知道它是否已更新或创建。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 2012-07-01
      • 2016-07-03
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多