策略模式学习

使用场景

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

相关推荐
basketball6165 小时前
设计模式入门:7. 策略模式详解 C++实现
c++·设计模式·策略模式
Java_2017_csdn3 天前
Java 策略模式(Strategy Pattern)-(二)
java·开发语言·策略模式
Java_2017_csdn3 天前
Java 策略模式(Strategy Pattern)-(一)
java·开发语言·策略模式
拾光Ծ3 天前
【Linux系统编程】线程池项目实战与基于策略模式的日志系统
linux·bash·线程池·策略模式·日志
星原望野4 天前
JAVA:策略模式的实战使用
java·开发语言·策略模式
前端张三4 天前
从零构建大模型(零)——搭建配置环境
策略模式
j_xxx404_4 天前
Linux 线程日志系统设计:从策略模式、RAII 到 pthread 线程安全与内核写入路径|附源码
linux·运维·服务器·开发语言·c++·人工智能·策略模式
代码小书生7 天前
shutil,一个文件操作的 Python 库!
开发语言·python·策略模式
ting94520007 天前
ModelHub 深度技术解析:macOS 原生菜单栏 LLM 模型管理工具,补齐 Ollama/MLX/LM Studio 生态短板
人工智能·macos·架构·策略模式
张小姐的猫7 天前
【Linux】多线程实战 —— 日志类 | 策略模式
linux·运维·服务器·c++·bash·策略模式