#include <iostream>
using namespace std;
/*
模版方法模式是将不变的行为移动到父类中,去除子类中的重复代码
定义一个操作中的算法骨架,而将一些步骤延迟实现在子类中,这种
模式使得可以在不改变算法的结构下即可重定义算法的特定步骤
*/
class AbstractClass {
public:
virtual void PrimitiveOperation1() =
0;
virtual void PrimitiveOperation2() =
0;
void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
};
class ConcreteClassA :
public AbstractClass {
public:
void PrimitiveOperation1()
{
cout<<
"A Primitive1"<<
endl;
}
void PrimitiveOperation2()
{
cout<<
"A Primitive2"<<
endl;
}
};
class ConcreteClassB :
public AbstractClass {
public:
void PrimitiveOperation1()
{
cout<<
"B Primitive1"<<
endl;
}
void PrimitiveOperation2()
{
cout<<
"B Primitive2"<<
endl;
}
};
int main()
{
AbstractClass* pClass =
NULL;
pClass =
new ConcreteClassA();
pClass->
TemplateMethod();
pClass =
new ConcreteClassB();
pClass->
TemplateMethod();
return 0;
}
转载于:https://www.cnblogs.com/yanjiu/archive/2012/08/08/2628429.html
相关资源:数据结构—成绩单生成器
转载请注明原文地址: https://win8.8miu.com/read-1542380.html