策略模式: 定义一系列的算法,并且将每一个算法封装起来 算法之间还可以互相替换。(前提:输入是确定的, 比如 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 具体的方法。
對於策略模式的概念,及優缺點,對於設計模式應用的應該都有所瞭解,這裏暫不贅述,本文主要從應用實戰的角度去處理。 少囉嗦,先上圖: 在目前的即時通信中,消息的類型多種多樣,對於不同的消息類型我們可能