4

我正在實現一個java項目,其中有多個分離模塊與共享服務(數據庫/ web服務)進行交互。模塊的設計模式不斷檢查系統中的其他模塊是否正在工作?

有一個健康檢查模塊持續輪詢所有模塊以查看它們是否正常工作。如果發現某個模塊處於非活動狀態或運行不正常,則健康檢查器模塊將執行修復並重新啓動該模塊。

這屬於哪種行爲模式?

回答

2

健康檢查器應該基本上跟蹤其他模塊如何工作。

所以健康檢查可以是觀察更改,因此你可以用Observer設計模式去。這些模塊應該包含一個方法,每次有變化時都應該通知健康檢查器

爲了保證共享資源的控制,你可以使用資源管理設計模式Singleton設計模式

你也可以閱讀這個MSDN博客討論你正在談論的類似類型的應用程序。

另一個類似的設計模式可以是this

+2

不確定觀察者是否在這裏。我認爲觀察者模式是模塊通知觀察者的地方,而此處健康檢查者正在輪詢其他模塊,而不是等待他們通知。 – ajb

+0

@ajb。是。我的錯。改變了我的答案。 –

0

我不會在這種情況下推薦觀察者。如果您沒有通知,則無法區分損壞的模塊和不創建事件的工作模塊。

Healthchecker應該使用調度程序並在一段時間內輪詢每個模塊。 它更容易編寫,效果更好。