- 定义:
定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户
消除if…else…
- 类型:
行为型
- 适用场景:
1,系统有很多类,而他们的区别仅仅在于他们的行为不同
2,一个系统需要动态地在几种算法中选择一种
- 优点:
1,开闭原则
2,避免使用多重条件转移语句
3,提高算法的保密性和安全性
- 缺点:
1,客户端必须知道所有的策略类,并自行决定使用哪一个策略类(点外卖的情况)
2,产生很多策略类
- 相关设计模式
1,策略模式+工厂模式
2,策略模式+状态模式
- UML