`
raojl
  • 浏览: 208954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【用c++模板实现策略模式】看chjavach策略模式有感

阅读更多
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <string>
#include <map>

using namespace std;
typedef map<string,int> vint;

//定义模板函数!
template<class T>
bool output(T _t){
	return _t.out();
}

//策略1
class A
{
public:
	bool out(){ printf("i am an A !\n"); return false; };
};
//策略2
class B
{
public:
	bool out(){printf("i am an B!\n"); return true;};
};
//上下文
void outcontext(){
	A a1;
	B b1;
	if (!output(a1))
	{
		output(b1);
	}
}
int main(int argc, char* argv[])
{
	outcontext();
	return 0;
}


可能都可以统一为模板方法模式!
分享到:
评论

相关推荐

    设计模式C++学习之策略模式(Strategy)

    在C++中,策略模式的实现通常涉及模板和虚函数。下面是一个简单的策略模式示例: ```cpp // 策略接口 class Strategy { public: virtual ~Strategy() {} virtual int execute(int num1, int num2) = 0; }; // ...

    设计模式-策略模式-c++版

    在C++中实现策略模式,我们通常会定义一个纯虚基类(策略接口),然后创建多个派生类(具体策略)来实现这个接口。例如: ```cpp class Strategy { public: virtual ~Strategy() {} virtual void execute() = 0; ...

    策略模式C++实现代码

    在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这些算法类都实现了一个公共接口,使得它们可以被相同的客户端代码调用,而无需知道具体的实现细节。 策略模式的核心组成部分包括上下文...

    单链表的C++模板实现

    用C++模板方式实现自定义单链表,交流学习用

    c++设计模式-行为型模式-策略模式

    c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式...策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    在C++中,我们可以使用虚函数和纯虚函数来实现模板方法模式。抽象类通常包含一些具体实现的函数,这些函数是不变的部分,而将可变的部分留给了子类去实现。这样做的好处是可以保持代码的封装性和可扩展性,同时避免...

    《 C++模板》和《C++模板元编程》两本

    C++模板是C++语言中的一个强大特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。函数模板用于定义可以接受不同类型参数的函数,而类模板用于创建...

    设计模式之策略模式 鸭子问题

    策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。这样,算法独立于使用它的客户而...

    C++设计模式课件4_策略模式.pdf

    ### C++设计模式课件4_策略模式.pdf #### 知识点概览 - **设计模式概述** - **策略模式动机分析** - **模式定义与结构解析** - **策略模式应用实例** - **策略模式优缺点分析** #### 设计模式概述 设计模式是一种...

    C++ 策略模式 dome

    在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这些算法都封装在一个接口或抽象基类中,使得客户端代码可以独立于具体算法的实现而与之交互。下面我们将深入探讨这个C++策略模式的示例...

    远程抄表与监控仿真系统(Version 1.5,采用策略模式、工厂模式、模板方法模式实现)

    使用Visual C++ 6.0做的远程抄表与监控的模拟系统。版本更新为1.5,修正了1.0版本Client端对于累计电量的采集的Bug,修正了连续载入配置文件出错的Bug,更新了配置文件合法性判断的逻辑,并对协议的结构进行了优化...

    C++ 写的策略模式 2

    在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这种模式的关键在于将算法封装到具有共同接口的独立类中,从而使它们可以相互替换。这允许算法的变化独立于使用它的客户。 在"C++写的策略...

    C++ 23种设计模式1

    《C++ 23种设计模式1》是关于软件工程中设计模式的深入解析,主要聚焦于C++语言的实现。设计模式是经过时间和实践验证的解决方案,它们针对常见的编程问题提供了一套标准的模板,使得开发者能够更高效地编写可复用、...

    head first 设计模式 策略模式 C++ 代码

    在《Head First 设计模式》这本书中,策略模式被详细地讲解,并通过C++代码实现来加深理解。策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。这使得算法的变化独立于使用算法的...

    设计模式EA类图并使用C++实现了19个设计模式

    在本项目中,我们关注的是使用Enterprise Architect(EA)工具绘制设计模式的类图,并用C++编程语言来实现这些模式。C++是一种强大的、面向对象的编程语言,非常适合实现设计模式,因为它支持类、封装、继承和多态等...

    C++策略模式二.rar

    在C++中,策略模式的实现可以利用多态性,即接口(策略接口)的指针或引用可以指向任何实现该接口的具体策略对象。这样,上下文就可以通过接口调用算法,而不需要知道具体的实现细节。 压缩包中的"策略模式二"可能...

    堆排序、优先级队列(c++模板实现)

    使用c++模板实现的堆排序、优先级队列,在vs2010下编译运行通过。压缩文件里为两个工程文件,如果有vs2010的话解压缩打开sln文件就可以了,没有的话,新建工程将文件复制过去就ok了。如果有问题可以留言。

    C++设计模式代码资源4_策略模式.zip

    在C++中实现策略模式,通常会涉及到模板元编程、动态分配和智能指针等高级特性,以确保内存管理和类型安全。此外,还可以结合工厂模式、组合模式等其他设计模式,进一步增强代码的灵活性和可扩展性。 总结来说,这...

Global site tag (gtag.js) - Google Analytics