根据需求的不同 选择不同的策略算法

之前是保存的各种策略类的指针

这里直接使用 function  bind 选择对应的算法

代码

// 005.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <functional>
#include <iostream>using namespace std;int MyAdd(int a, int b) { return a + b; }class MyMinus {
public:int operator()(int a, int b) {return a - b;}
};class binary_operators {
public:typedef std::function<int(int, int)> FUNC;binary_operators(FUNC f,int a, int b) :func_(f),left(a), right(b),result(0) {}int GetResult() { return func_(left, right); }
private:std::function<int(int, int)> func_;int left;int right;int result;
};int main()
{binary_operators addOperation(std::function<int(int, int)>(MyAdd),1,2);binary_operators minusOperation(std::function<int(int, int)>(MyMinus()), 5, 7);std::cout << "addOperation(1,2) result: " << addOperation.GetResult() << std::endl;std::cout << "minusOperation(5,7) result: " << minusOperation.GetResult() << std::endl;return 0;
}

View Code

转载于:https://www.cnblogs.com/itdef/p/7457016.html

设计模式 策略模式2 c++11相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Android 动态刷新listview中的数据
  2. Hbase:原理和设计
  3. python crawler(1)
  4. Matplotlib实例教程(十四)误差条形图
  5. 得力助手 消防员的 消防机器人_消防机器人:消防员的“得力助手”(科技大观)...
  6. yum 简介及其常用命令
  7. 将svg文件化成字体图标的步骤
  8. ubuntu终端下快捷键,字体放大缩小等【逐渐完善篇】
  9. jquery css事件编程 尺寸设置
  10. v380智能快配连接不上怎么办_Win7系统电脑设置连接远程桌面的操作方法
  11. python123测试题_Python练习题
  12. js多个物体运动问题2
  13. 小客车年检(年审)相关的技术参数一览
  14. CGLIB动态代理--实例/原理
  15. 考考你、智商题 小明借爸爸500元 又借妈妈500元 买双鞋 970元 还剩30元 还给爸爸10元...
  16. kerastensorflow+分布式训练︱实现简易视频内容问答框架
  17. a pubhub service
  18. C++ Standard Library
  19. Python二手车价格预测(二)—— 模型训练及可视化
  20. 谨以此文纪念我的2020——不负热爱,砥砺前行

热门文章

  1. tomcat常用功能
  2. Redis的常用功能
  3. BZOJ 2301 - Problem b(莫比乌斯反演+容斥)
  4. 【EasyNetQ】- 发送接收
  5. jq循环取数据 ,一直记不住,放到这
  6. 更新——Canvas画布动画效果之实现倒计时
  7. JavaScript实现快速排序
  8. 4种kill某个用户所有进程的方法
  9. php跳转分站,PHP判断IP并转跳到相应城市分站的方法
  10. php怎么更新多条数据,PHP中批量更新数据表中多条记录