多種訊息傳送機制,處理合適不??
最近在專案中我負責一個訊息傳送模組的編寫,現在回過頭來看看自己寫的,不知道使用的設計模式是否合適。
專案中:傳送訊息包括幾種方式:email,簡訊,資訊推送(資訊推送有兩種不同的實現,都需要去實現,一種是基於IBM的Mqtt進行訊息推送,還有一種是C2DM)。該模組在系統主要是將資訊用這幾種方式傳送資訊。
我想,不管用那種方式傳送資訊,這是傳送資訊的不同策略而已,我透過判斷是需要傳送訊息的型別來產生不同的實現類,呼叫實現類的統一介面傳送資訊。UML圖如下:(畫的不是很好。)
SendMessageSuper:
mqttpush:
不知道 這樣使用 是否符合,有什麼不足。
專案中:傳送訊息包括幾種方式:email,簡訊,資訊推送(資訊推送有兩種不同的實現,都需要去實現,一種是基於IBM的Mqtt進行訊息推送,還有一種是C2DM)。該模組在系統主要是將資訊用這幾種方式傳送資訊。
我想,不管用那種方式傳送資訊,這是傳送資訊的不同策略而已,我透過判斷是需要傳送訊息的型別來產生不同的實現類,呼叫實現類的統一介面傳送資訊。UML圖如下:(畫的不是很好。)
其中程式碼實現:
SendMessageContext:
public class SendMessageContext { private SendMessageSuper sendMessageSuper; public SendMessageContext(Message message) { if("Mqtt" == message.getMessageType()) { sendMessageSuper = new MqttPush(); } else if("Email" == message.getMessageType()) { System.out.println("email"); } else if("SMS" == message.getMessageType()) { System.out.println("SMS"); } else if("C2DM" == message.getMessageType()) { System.out.println("C2DM"); } else { //記錄 日誌 log System.out.println(); } } public SendMessageSuper getSendMethod() { return sendMessageSuper; } } <p class="indent"> |
SendMessageSuper:
public interface SendMessageSuper { public String sendMessage(Message message); } <p class="indent"> |
mqttpush:
public class MqttPush implements SendMessageSuper{ @Override public String sendMessage(Message message) { MQTTConnection mqttConnection = MQTTConnection.getMQTTConnection(); try { mqttConnection.publishToTopic("1111","1223SS423423"); } catch (MqttException e) { e.printStackTrace(); } // TODO Auto-generated method stub return null; } } <p class="indent"> |
不知道 這樣使用 是否符合,有什麼不足。
相關文章
- Android基本功:Handler訊息傳送機制Android
- php ActiveMQ的傳送訊息,與處理訊息PHPMQ
- flutter 訊息傳遞機制Flutter
- Handler訊息傳遞機制
- RocketMQ(6)---傳送普通訊息(三種方式)MQ
- Android訊息傳遞之Handler訊息機制Android
- 【Azure Service Bus】 Service Bus如何確保訊息傳送成功,傳送端是否有Ack機制
- Runtime底層原理探究(二) --- 訊息傳送機制(慢速查詢)
- 訊息中介軟體—RocketMQ訊息傳送MQ
- 【RocketMQ】MQ訊息傳送MQ
- RocketMQ(八):訊息傳送MQ
- iOS 傳送位置訊息iOS
- 鴻蒙傳送訊息通知鴻蒙
- 跨共識訊息格式XCM有幾種傳遞機制?
- OC訊息機制,訊息轉發機制
- Rocket MQ傳送訊息的三種方式初析MQ
- 訊息機制
- RocketMQ(九):訊息傳送(續)MQ
- TNW-傳送模板訊息TNW
- 6-RocketMQ傳送訊息MQ
- 千牛自動傳送訊息怎麼發?來試試UiBot千牛訊息傳送機器人UI機器人
- Rocket MQ 的三種訊息傳送(同步、非同步、單向)和訊息訂閱MQ非同步
- win10玩dnf傳送不了訊息怎麼解決_win10玩dnf傳送不了訊息如何處理Win10
- Gorush 輕量級手機訊息傳送服務Go
- RocketMQ中Producer訊息的傳送MQ
- 傳送不同型別的訊息型別
- RocketMQ -- 訊息傳送儲存流程MQ
- Kafka -- 訊息傳送儲存流程Kafka
- 快速向 Google Chat 傳送訊息Go
- iOS 給父類傳送訊息iOS
- 小程式傳送訂閱訊息
- iOS訊息機制iOS
- SAP訊息機制
- Android Handler訊息傳遞機制詳解Android
- objc系列譯文(7.4):訊息傳遞機制OBJ
- uwsgi多程式配合kafka-python訊息無法傳送KafkaPython
- RabbitMQ,RocketMQ,Kafka 事務性,訊息丟失和訊息重複傳送的處理策略MQKafka
- 原始碼分析:Android訊息處理機制原始碼Android