问题:
在我们生活中,我们的做的事情都有一些共性,例如,很多事情都有类似的操作过程,这些东西应用到编程中也是一样的;如果我们把每件事情都抽象成一个类,这样会有大量重复的工作;
解决方案:
把其中的共性抽象出来,把它们在基类中完成,对于那些变化的,则写成抽象方法,让子类去完成;这就是Template模式
源代码:
#include <IOSTREAM>
using namespace std;
class Template{
public:
void TemplateMethod()
{
this->Primitive1();
this->Primitive2();
}
protected:
Template(){}
virtual void Primitive1()=0;
virtual void Primitive2()=0;
};
class ConcreateTemplate1:public Template
{
public:
ConcreateTemplate1(){}
protected:
virtual void Primitive1(){
cout<<"做面条1...."<<endl;
}
virtual void Primitive2(){
cout<<"做面条2....."<<endl;
}
};
class ConcreateTemplate2:public Template
{
public:
ConcreateTemplate2(){}
protected:
virtual void Primitive1(){
cout<<"做烩面1....."<<endl;
}
virtual void Primitive2(){
cout<<"做烩面2...."<<endl;
}
};
void main()
{
Template* tem=new ConcreateTemplate1;
tem->TemplateMethod();
delete tem;
tem=new ConcreateTemplate2;
tem->TemplateMethod();
delete tem;
}