模式"/>
(19)设计模式
文章目录
- 1. 定义
- 2. 通用类图
- 3. 优缺点
- 3.1 优点
- 3.2 缺点
- 4. 使用场景
- 5. 总结
1. 定义
策略模式,英文全称是 Strategy Design Pattern。定义为:定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端。
2. 通用类图
3. 优缺点
3.1 优点
- 算法可以自由切换。
- 避免使用多重条件判断。
- 扩展性良好。
3.2 缺点
- 策略类数量增多。
- 所有的策略类都需要对外暴露。
4. 使用场景
- 多个类只有在算法或行为上稍有不同的场景。
- 算法需要自由切换的场景。
- 需要屏蔽算法规则的场景。
5. 总结
策略模式定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端。
策略模式用来解耦策略的定义、创建、使用。实际上,一个完整的策略模式就是由这三个部分组成的。
- 策略类的定义比较简单,包含一个策略接口和一组实现这个接口的策略类。
- 策略的创建由工厂类来完成,封装策略创建的细节。
- 策略模式包含一组策略可选,客户端代码如何选择使用哪个策略,有两种确定方法:编译时静态确定和运行时动态确定。其中,“运行时动态确定”才是策略模式最典型的应用场景。
更多推荐
(19)设计模式
发布评论