策略模式学习

使用场景

一个方法有很多的实现方式,并且需要使用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

相关推荐
哆啦code梦2 小时前
趣谈设计模式之策略模式-比特咖啡给你一杯满满的情绪价值,让您在数字世界里”畅饮“
设计模式·策略模式
克拉克盖博2 天前
chapter03_Bean的实例化与策略模式
java·spring·策略模式
我命由我123454 天前
软件开发 - 避免过多的 if-else 语句(使用策略模式、使用映射表、使用枚举、使用函数式编程)
java·开发语言·javascript·设计模式·java-ee·策略模式·js
饕餮争锋4 天前
设计模式笔记_行为型_策略模式
笔记·设计模式·策略模式
二进制coder5 天前
OpenBMC中C++策略模式架构、原理与应用
c++·架构·策略模式
夕四丶5 天前
【java实现一个接口多个实现类通用策略模式】
java·策略模式
找不到、了5 天前
Java设计模式之《策略模式》
java·设计模式·策略模式
刘火锅5 天前
设计模式-策略模式 Java
java·设计模式·策略模式
T0uken11 天前
【Mac】WireGuard:使用 launchd 管理服务
macos·策略模式
橘色的喵12 天前
嵌入式C语言编程:策略模式、状态模式和状态机的应用
c语言·状态模式·策略模式·状态机