策略模式: 定義一系列的算法,並且將每一個算法封裝起來 算法之間還可以互相替換。(前提:輸入是確定的, 比如 if else 或者switch)
1. Context(場景類)、 Strategy (抽象類)、 A/B/C (Strategy 抽象類的子類,負責具體實現抽象類的方法)具體策略類 。
2. 從圖可以看出場景類和策略(抽象類)是聚合關係。
3. 場景類引用的抽象類,調用了策略類(抽象類)定義的接口方法,實際調用到的是 A/B/C 具體的方法。
策略模式: 定義一系列的算法,並且將每一個算法封裝起來 算法之間還可以互相替換。(前提:輸入是確定的, 比如 if else 或者switch)
1. Context(場景類)、 Strategy (抽象類)、 A/B/C (Strategy 抽象類的子類,負責具體實現抽象類的方法)具體策略類 。
2. 從圖可以看出場景類和策略(抽象類)是聚合關係。
3. 場景類引用的抽象類,調用了策略類(抽象類)定義的接口方法,實際調用到的是 A/B/C 具體的方法。
對於策略模式的概念,及優缺點,對於設計模式應用的應該都有所瞭解,這裏暫不贅述,本文主要從應用實戰的角度去處理。 少囉嗦,先上圖: 在目前的即時通信中,消息的類型多種多樣,對於不同的消息類型我們可能