策略模式学习

使用场景

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

相关推荐
她说..1 天前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
进击的小头2 天前
设计模式组合应用:嵌入式通信协议栈
c语言·设计模式·策略模式
Wyy_9527*2 天前
行为型设计模式——策略模式
设计模式·策略模式
她说..3 天前
策略模式+工厂模式实现单接口适配多审核节点
java·spring boot·后端·spring·简单工厂模式·策略模式
HAPPY酷3 天前
构建即自由:一份为创造者设计的 Windows C++ 自动化构建指南
开发语言·c++·ide·windows·python·策略模式·visual studio
Tom·Ge4 天前
在macOS上安装OpenClaw并实现Chrome网站自动化测试
chrome·macos·策略模式
HAPPY酷5 天前
C++“设为启动项”前必须“重新生成”?不必!
开发语言·c++·策略模式
流㶡5 天前
Python调用系统命令:os.system详解
策略模式
2501_944221885 天前
基础架构的终极形态:像用 macOS 一样用云
策略模式
hexionly5 天前
演示工厂模式和策略模式的基本用法
java·简单工厂模式·策略模式·开闭原则