当前位置: 首页 > news >正文

大话设计模式之策略模式

策略模式是一种行为设计模式,它允许在运行时选择算法的行为。这种模式定义了一族算法,将每个算法都封装起来,并且使它们之间可以互相替换。

在策略模式中,一个类的行为或其算法可以在运行时改变。这种模式包含以下角色:

  1. 上下文(Context):持有一个策略对象的引用,负责把客户的请求转发给策略对象。
  2. 策略(Strategy):定义所有支持的算法的公共接口。通常是通过一个接口/抽象类来实现。
  3. 具体策略(Concrete Strategy):实现策略接口的具体算法。
#include <iostream>// 策略接口
class Strategy {
public:virtual void execute() = 0;
};// 具体策略A
class ConcreteStrategyA : public Strategy {
public:void execute() override {std::cout << "Executing strategy A" << std::endl;}
};// 具体策略B
class ConcreteStrategyB : public Strategy {
public:void execute() override {std::cout << "Executing strategy B" << std::endl;}
};// 上下文
class Context {
private:Strategy* strategy;public:Context(Strategy* strategy) : strategy(strategy) {}void setStrategy(Strategy* newStrategy) {strategy = newStrategy;}void executeStrategy() {strategy->execute();}
};int main(int argc, char *argv[])
{ConcreteStrategyA strategyA;ConcreteStrategyB strategyB;Context context(&strategyA);context.executeStrategy();context.setStrategy(&strategyB);context.executeStrategy();return 0;
}/*
在这个例子中,Strategy 是一个接口,ConcreteStrategyA 和 ConcreteStrategyB 分别是具体的策略类。Context 是上下文类,它可以持有不同的策略,并在运行时动态改变所采用的策略。
*/

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/328438.html

相关文章:

  • 蓝桥杯23年第十四届省赛真题-三国游戏|贪心,sort函数排序
  • P15:PATH环境变量
  • math模块篇(七)
  • wordpress插件,免费的wordpress插件
  • Remote Desktop Manager for Mac:远程桌面管理软件
  • 如何撰写研究论文
  • 数据结构
  • 动态规划相关题目
  • iOS - Runtime - Class-方法缓存(cache_t)
  • 2014年认证杯SPSSPRO杯数学建模B题(第一阶段)位图的处理算法全过程文档及程序
  • 【物联网项目】基于ESP8266的家庭灯光与火情智能监测系统——文末完整工程资料源码
  • Unity中控制帧率的思考
  • 阿里云子域名配置,且不带端口访问
  • C#-ConcurrentDictionary用于多线程并发字典
  • 深入探讨多线程编程:从0-1为您解释多线程(下)
  • 深度学习pytorch——减少过拟合的几种方法(持续更新)
  • 排序第五篇 归并排序
  • 【Win】使用PowerShell和Webhooks轻松发送消息至Microsoft Teams
  • ESCTF-OSINT赛题WP
  • 2024蓝桥杯省赛保奖突击班-Day2-前缀和、差分、尺取_笔记_练习题解
  • C++基础之虚函数(十七)
  • 快速入门Kotlin①基本语法
  • 【理解指针(四)】
  • Ribbon简介
  • 【感悟《剑指offer》典型编程题的极练之路】02字符串篇!
  • 通过 Docker 实现国产数据库 OpenGauss 开发环境搭建
  • 【Java】LinkedList模拟实现
  • ubuntu下mysql常用命令
  • 燃气官网安全运行监测系统-阀井燃气监测仪-旭华智能
  • vue 文件预览(docx、.xlsx、pdf)