#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++实现的模板方法模式示例。通过定义一个模板函数和两种具体策略(A和B)展示了如何根据不同需求选择执行不同的操作。此外,还提供了一个上下文函数来演示如何在运行时决定采用哪种策略。

被折叠的 条评论
为什么被折叠?



