`
raojl
  • 浏览: 203854 次
  • 性别: 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;
}


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

相关推荐

Global site tag (gtag.js) - Google Analytics