策略模式: 定义一系列的算法,并且将每一个算法封装起来 算法之间还可以互相替换。(前提:输入是确定的, 比如 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 具体的方法。