什麼是更好的設計JMS消息監聽器設計
是更好地有一個監聽器和獨立處理這個監聽器兩種類型emssages的。
或者有兩個偵聽器進行處理,並通過標題的分隔?
例如針對不同類型的課程。或接口。
-----編輯
而不是使用選擇器。我可以讓我們說處理程序(接口)的列表,並通過迭代通過註冊(通過IOC)處理程序,並選擇一個可以處理消息。它也是分開的,但不同的是,你認爲哪個更好?
什麼是更好的設計JMS消息監聽器設計
是更好地有一個監聽器和獨立處理這個監聽器兩種類型emssages的。
或者有兩個偵聽器進行處理,並通過標題的分隔?
例如針對不同類型的課程。或接口。
-----編輯
而不是使用選擇器。我可以讓我們說處理程序(接口)的列表,並通過迭代通過註冊(通過IOC)處理程序,並選擇一個可以處理消息。它也是分開的,但不同的是,你認爲哪個更好?
使用多個偵聽器。
爲什麼要編寫重複您已使用的技術的現有功能的代碼。因爲JMS可以支持相當複雜的路由消息決策過程,所以我只在最簡單的意義上使用重複單詞。
其他考慮因素是能夠根據每個聽衆的選擇器分配工作負載。使用多個偵聽器,您可以按消息類型配置線程數,並根據需要輕鬆更改該值。當然,你自己也可以做到這一點,但你爲什麼?
我更喜歡面向對象的方法,每個消息都有一個單獨的偵聽器。通過這種方式,我可以通過添加新的類類來添加新消息,而不必使用更多的「if/else」代碼修改現有的偵聽器。
這將是開放/封閉原則的一個例子,其中一個爲Bob Martin's SOLID recommendations。
我可以讓我們說處理程序(接口)列表,並通過迭代通過註冊(通過IOC)處理程序,並選擇一個可以處理消息。它也是分開的,但不同的是,你認爲它更好嗎? – fafaano 2011-05-13 13:33:39
這也會起作用。定義「更好」,我們會談。 – duffymo 2011-05-13 14:08:39