模板方法模式
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式包含AbstractClass(抽象类)和ConcreteClass(具体类、具体方法或者是钩子方法)
模板方法模式实例之银行业务办理流程
从类图可知,结构比较简单,process函数为模板方法,为一个顶级逻辑的骨架,里面包含各种操作方法,方法可以为具体方法或者是抽象方法。
下面是c++版本的实现。
抽象类BankTemplateMethod(银行业务办理流程类)
//抽象类BankTemplateMethod(银行业务办理流程类)
class BankTemplateMethod{
public:
void takeNumber(){
cout << "取号排队。" << endl;
}
virtual void transact() = 0;
void evaluate(){
cout << "反馈评分。" << endl;
}
void process(){
this->takeNumber();
this->transact();
this->evaluate();
}