定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法结构图:
class AbstractClass
{
public:
void PrimitiveOperation1();
void PrimitiveOpeation2();
void templateMethod()
{
PrimitiveOpeation1();
PrimitiveOpearion2();
}
}
class ConcreteClassA : public AbstractClass
{
public:
void PrimitiveOperation1()
{
cout<< " implement method 1 of concrete class A " <<endl;
}
void PrimitiveOperation2()
{
cout<< " implement method 2 of concrete class A " <<endl;
}
}
class ConcreteClassB : public AbstractClass
{
public:
void PrimitiveOperation1()
{
cout<< " implement method 1 of concrete classB " <<endl;
}
void PrimitiveOperation2()
{
cout<< " implement method 2 of concrete classB " <<endl;
}
}