2010-01-18 66 views
0

基於問題(How to create a client notification service for a webapp or should I use an Observer Pattern?),我想知道。創建發佈訂閱模式以集成到DAO模式

我有一個完全實現的DAO與包含只有getters和setters方法的實體bean。每個實體都映射到一個EntityManager。

目前沒有辦法通知用戶增加/刪除/更新到持久性存儲器(如數據庫)的任何更改。

我想知道,我將如何實現發佈 - 訂閱模式(也稱爲觀察者模式),以便我不必擴展當前的DAO體系結構。我不希望我的實體繼承發佈者,因爲並非所有實體都是可更新的。

如果有任何工具/框架/庫可用於我的情況,請告訴我。另外,我沒有使用任何持久化框架(Hibernate等框架),DAO管理器和Factory完全由我編寫。

問候,

回答

1

我正在構建一個類似的概念......我不在乎所有的事件和項目內我們想關心不同的事件。因此,我們正在構建一種模式,將所有DAO操作提交給DROOLS Fusion,並基於規則和一些時間推理,通過通知架構通知偵聽器。根據您的需要,架構可以是簡單的監聽器或JMS或電子郵件......無論如何。如果你沒有標準,只關心DAO事件的回調,然後讓你的DAO插入,更新,刪除操作將對象提交給偵聽器或某種類型的JMS隊列。

希望這是明確的......

保羅

1

我會第一個建議是你的DAO中嵌入一個可觀察的對象。然後你會看到這個對象(我過去做過類似的事情)。

我的另一個建議是,你可以添加一個觸發器到數據庫本身。如果您的應用程序之外有任何可能會更改要通知其子的DB,這將特別有用。

祝你好運。

+0

好了,基本上發佈 - 訂閱模式將被用於通知新產品是否加入或電流產品更新/刪除產品的變化的客戶。我的bean只是getters&setters,所以我希望看到enity不知道它是否被更新或創建。 – 2010-01-18 15:47:08