使用场景
一个方法有很多的实现方式,并且需要使用if else等分支逻辑选择使用哪种实现方式
术语
环境
维护策略对象的引用,负责将请求委派给具体的策略对象执行。环境类可以通过依赖注入、简单工厂等方式获取具体策略对象
抽象策略
定义了策略类的公共接口,具体策略类必须实现公共接口
具体策略
实现了抽象策略定义的接口,包含具体的算法实现
使用限制
策略模式并不决定何时使用何种算法,算法的选择由客户端决定,客户端需要知道有哪些具体策略类,以便选择最合适的算法
参考
https://zhuanlan.zhihu.com/p/64584526
https://www.runoob.com/design-pattern/strategy-pattern.html
https://www.liaoxuefeng.com/wiki/1252599548343744/1281319606681634
https://design-patterns.readthedocs.io/zh-cn/latest/behavioral_patterns/strategy.html