2012-04-28 77 views
2

在設計事件處理系統時需要一點建議。 從高級別上講,我的Java服務器接收到各種請求,執行並響應(同步和異步)給它們。複雜事件處理

的流程如下:

a)低級別類從客戶機接收該事件。這個類有一個MessageRouter類的引用。一旦它得到事件,它就簡單地調用MessageRouter上的路由(事件事件)。

b)MessageRouter類將事件排隊,並在一個單獨的線程中確定消息的類型,找到合適的Handler並將消息傳遞給它。

c)處理程序執行消息。

d)ResponseRouter收集響應並將其寫回。

我的問題是:

1)我應該如何設計C),因爲我需要4-5其他「經理」之類的類的引用來執行請求。另外,應該c)參考d)將響應路由回去?

2)同樣,d)需要引用其他類來回寫響應,因爲它們可以同步和異步完成。 ResponseRouter是否需要引用它所需的所有類?

主要是,我正在尋找一種設計模式(或它們的組合)以高效和優雅的方式執行事件及其響應。

+0

我不完全理解那些'經理'類...更多處理程序?例如IORecievers是一些http門異步/同步;並且handler1將數據加載到對象中,handler2執行一些業務邏輯處理程序3將數據寫回到存儲區,handler4創建響應html等? – 2012-07-16 20:20:01

回答

0

至於對Q2的回答,因爲可以執行異步處理程序,所以我建議在MessageRouter中處理請求和響應可能更直接,可能引用另外兩個實現RequestRouter和ResponseRouter接口的對象。

處理程序完成後,它可以以同步或異步方式將結果返回給MessageRouter。

這種方式處理程序不需要引用ResponseRouter。