/*
**template模式
**对于某一个业务逻辑在不同的对象中有不同的实现细节,但是整体的逻辑框架相同
**将逻辑框架抽象在基类中,定义好细节的接口,子类实现细节
*/
#include <iostream>
using namespace std;
class Paper
{
public:
virtual ~Paper(){}
void PrintAllAnswer()
{
answer1();
answer2();
answer3();
}
protected:
virtual void answer1()=0;
virtual void answer2()=0;
virtual void answer3()=0;
};
class StuA:public Paper
{
protected:
void answer1(){cout<<"你好"<<endl;}
void answer2(){cout<<"你真好"<<endl;}
void answer3(){cout<<"你真的好"<<endl;}
};
class StuB:public Paper
{
protected:
void answer1(){cout<<"你不好"<<endl;}
void answer2(){cout<<"你真不好"<<endl;}
void answer3(){cout<<"你真的不好"<<endl;}
};
int main()
{
Paper *a=new StuA;
a->PrintAllAnswer();
delete a;
Paper *b=new StuB;
b->PrintAllAnswer();
delete b;
}
模版模式--Template
最新推荐文章于 2024-05-21 00:15:00 发布