策略模式 Strategy
发布时间 2023-12-21 08:54:44作者: 梅丹隆
一、定义
- 定义了算法家族,分别封装起来,让它们之间可以相互替换
- 此模式让算法的变化不会影响到使用算法的用户
二、适用场景
- 系统有很多类,而它们的区别仅仅在于行为不同
- 一个系统需要动态的在几种算法中选择一种
三、优缺点
1、优点
- 符合开闭原则 OpenClose
- 避免使用多重条件转移语句
switch
- 提高算法的保密性和安全性
2、缺点
- 客户端必须知道所有的策略类,并自行决定使用哪一个策略类
- 会产生很多策略类
四、代码实现
https://github.com/Meidanlong/all-in-one/tree/master/design/src/main/java/com/mdl/design/pattern/behavioral/strategy