/********************************************************************************************
策略模式:
    将一系列策略进行封装,客户根据需求去调用相应的策略,实现很方便,后续添加策略时,只需继承接口并实现该策略
1.创建策略类,不同的策略去继承同一个接口函数
2.将策略组成一个算法本
    1.持有接口函数的指针,根据条件选择具体的算法,完成策略接口的赋值
    2.调用策略执行函数,在执行函数中完成具体的算法,在外界看来调用同一个函数接口可以执行不同的策略
***********************************************************************************************/
#include<iostream>
using namespace std;
class Strategy
{
public:
    virtual void discount() = 0;
};
class five : public Strategy
{
public:
    virtual void discount()
    {
        cout << "打5折" << endl;
    }
};
class six : public Strategy
{
public:
    virtual void discount()
    {
        cout << "打6折" << endl;
    }
};
class Context
{
public:
    Context(Strategy *strategy)
    {
        this->p = strategy;
    }
    void Operator()
    {
        p->discount();
    }
private:
    Strategy *p;
};
void main()
{
    Strategy *strategy = new five();//创建具体的算法对象
    Context *p = new Context(strategy);//扔向算法目录
    p->Operator();//指针指向哪个算法,那么此指针调用的就是谁的算法
    delete strategy;
    delete p;

Strategy *strategy1 = new six();//创建具体的算法对象
    Context *p1 = new Context(strategy1);//扔向算法目录
    p1->Operator();//指针指向哪个算法,那么此指针调用的就是谁的算法

delete strategy1;
    delete p1;
    system("pause");
}

设计模式--策略模式(C++实现)相关推荐

  1. Python设计模式-策略模式

    Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...

  2. 关于设计模式——策略模式-Strategy Pattern

    文章目录 1 策略模式 1.1 模拟鸭子 1.2 设计原则 1.3 整合行为 1.4 模拟鸭子代码的代码 1.5 动态设定行为 1.6 重新查看整体 1.7 继承和组合 1.8 总结 1.9 优劣期间 ...

  3. [设计模式] ------ 策略模式

    策略模式 它定义了算法家族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化,不会影响到使用算法的客户 其实很简单,可能很多人都用到了,只不过还不知道这就是策略模式而已. 比如定义一个接口A, ...

  4. java 策略模式 促销_java设计模式——策略模式

    一. 定义与类型 定义:针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换.策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能.当代码中 ...

  5. Springboot 使用设计模式- 策略模式

    前言 直白点,什么场景我们需要使用到设计模式- 策略模式. 在平常的springboot项目里面做CRUD,我们的习惯性基本是 一个mapper,一个service,一个serviceImpl. 但是 ...

  6. 李建忠设计模式——策略模式Strategy

    目录 1.策略模式定义 1.动机 2.模式定义 3.结构 2.实现例子 1.问题描述 2.代码实现 3.要点总结 4.参考 1.策略模式定义 1.动机 软件构建过程中,某些对象使用的算法可能多种多样, ...

  7. 15. 星际争霸之php设计模式--策略模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  8. Java设计模式-策略模式作业

    Java设计模式-策略模式作业,所有类和接口均在一个package内 文章目录 前言 一.作业内容 二.具体实现 1.类图 2.Strategy接口 3.PreCopyStrategy类 4.Post ...

  9. 设计模式-策略模式2.0

    设计模式-策略模式2.0 前面文章我们说过了传统的策略模式的实现,本文我们简单说下设计模式中的升级版的策略模式,策略模式2.0. 代码实现 talk is cheap show me the code ...

  10. 设计模式-策略模式(Strategy)-Java

    设计模式-策略模式(Strategy)-Java 目录 文章目录 1.前言 2.示例案例-电影票打折方案 3.策略模式概述 3.1.策略模式定义 3.2.策略模式结构 3.3.策略模式结构图中角色 3 ...

最新文章

  1. 如何查看mysql连接相关参数
  2. SQL Server 2005无法输入中文的解决方案
  3. Log4j Bug –减慢您的应用程序
  4. 搭建struts2框架
  5. matlab7.0 6.5,任何处理matlab6.5与7.0.1的兼容问题
  6. 空字符是什么类型_Redis是什么?看这一篇就够了!
  7. DHCP的安装到简单测试(tar方式)
  8. 使用Python为《围城》做一个图云
  9. GIT 添加多个git账号
  10. php unlink()函数使用
  11. ‘git‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  12. java 调用谷歌翻译API(直接可以使用)
  13. 药店管理系统设计方案开发
  14. 【Swagger】Swagger 注解学习
  15. 电脑怎么用自带录音器录制系统的声音
  16. java屏蔽虚拟按键代码_Android虚拟按键 Recent键屏蔽(隐藏)
  17. 自己的邮箱还有在用吗,还安全吗?
  18. ArcGIS 切片/瓦片的发布与加载
  19. 企业应该做的体系认证
  20. 硬盘坏了数据可以恢复吗?一分钟掌握数据恢复

热门文章

  1. Linux输入子系统浅析
  2. 微软发布下一代VS 2010和Framework 4.0
  3. IDEA集成MAVEN 报错
  4. UI基础UIView常见属性及方法
  5. 关于C++标准库中的数据抽象
  6. 几种常用的视频接口(端子)
  7. 游戏筑基开发之测试篇(C语言)
  8. HCIE Security 防火墙NAT技术 备考笔记(幕布)
  9. Linux命令使用练习二
  10. 电器缺水保护控制介绍