場景如下:
客戶會透過sdk傳過來原始訊息,我現(xiàn)在開發(fā)的模組收到訊息後會根據(jù)配置對該訊息進行提取和轉換產(chǎn)生新的訊息格式,並透過mq傳給下游模組。
如果套用一個模式的話應該是用什麼呢?
編輯於:2017年6月22日 18:00
可能我沒有描述清楚,導致大家誤解了,詳細描述一下場景:
接收訊息
判斷該訊息是從哪個客戶發(fā)過來的,並取出該客戶在後臺的配置
#根據(jù)組態(tài)訊息,進行訊息的擷取與轉換,產(chǎn)生新格式的訊息
把新訊息傳送給後端其他模組處理
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
你所完成的功能是一個轉換器,限定死要求來的資料的格式,譬如id,type,content,你可以寫一個接口,擁有getId,getType,getContent方法,要求實現(xiàn)方必須提供這幾個值。
經(jīng)過你的轉換器後,得到不同的物件。
我想可以這樣來實現(xiàn):
針對不同的訊息,有不同的訊息處理器(Handler)來完成對應的功能,訊息提取和新訊息的產(chǎn)生等;
這些Handler實現(xiàn)了一個共同的接口,後續(xù)還可以繼續(xù)增加新的Handler;
所有Handler形成一個處理鏈,每個Handler有個match方法來判斷是否該由自己處理,不能處理的,交給後續(xù)的Handler。
所以我覺得可以考慮責任鏈模式,策略模式等。