模板方法模式
在抽象类中统一操作步骤,并规定好接口,让子类实现接口。这样可以把各个具体和操作步骤解耦合。
模板方法模式又叫模板模式(Template Pattern),一个抽象类公开定义了执行它的方法的方式或者模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。(即模板方法模式定义一个操作中的基本骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构就可以重定义该算法的某些特定步骤;这种类型的设计属于行为型模式)
模板方法模式UML类图:
#include <iostream>
using namespace std;
class makeCar{
public:
virtual void makehead()=0;
virtual void makebody()=0;
virtual void maketail()=0;
virtual void make(){
makehead();
makebody();
maketail();
}
};
class car1:public makeCar{
virtual void makehead(){
cout<<"car1 head"<<endl;
}
virtual void makebody(){
cout<<"car1 body"<<endl;
}
virtual void maketail(){
cout<<"car1 tail"<<endl;
}
};
class car2:public makeCar{
virtual void makehead(){
cout<<"car2 head"<<endl;
}
virtual void makebody(){
cout<<"car2 body"<<endl;
}
virtual void maketail(){
cout<<"car2 tail"<<endl;
}
};
int main() {
makeCar *car =new car1();
car->make();
delete car;
return 0;
}