文章詳情頁
java - 關于設計模式的選擇
瀏覽:87日期:2023-10-30 15:11:11
問題描述
場景如下: 客戶會通過sdk傳過來原始消息,我現在開發的模塊收到消息后會根據配置對該消息進行提取和轉換生成新的消息格式,并通過mq傳給下游模塊。
如果套用一個模式的話應該是用什么呢?
編輯于:2017年6月22日 18:00
可能我沒有描述清楚,導致大家誤解了,詳細描述一下場景:
接收消息
判斷該消息是從哪個客戶發過來的,并取出該客戶在后臺的配置
根據配置信息,進行消息的提取和轉換,生成新格式的消息
把新消息發送給后端其他模塊進行處理
問題解答
回答1:你所完成的功能是一個轉換器,限定死要求來的數據的格式,譬如id,type,content,你可以寫一個接口,擁有getId,getType,getContent方法,要求實現方必須提供這幾個值。經過你的轉換器后,得到不同的對象。
回答2:我想可以這樣來實現:
針對不同的消息,有不同的消息處理器(Handler)來完成對應的功能,消息提取和新消息的生成等;
這些Handler實現了一個共同的接口,后續還可以繼續增加新的Handler;
所有Handler形成一個處理鏈,每個Handler有個match方法來判斷是否該由自己處理,不能處理的,交給后續的Handler。
所以我覺得可以考慮責任鏈模式,策略模式等。
回答3:這么簡單的需求,adapter,適配一下就可以了
標簽:
java
相關文章:
1. python小白 關于類里面的方法獲取變量失敗的問題2. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙3. linux運維 - python遠程控制windows如何實現4. Python2中code.co_kwonlyargcount的等效寫法5. javascript - 如何用最快的速度C#或Python開發一個桌面應用程序來訪問我的網站?6. django - Python error: [Errno 99] Cannot assign requested address7. mysql數據庫做關聯一般用id還是用戶名8. [python2]local variable referenced before assignment問題9. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?10. python小白,關于函數問題
排行榜
