模板方法模式
- 定义一个操作中的算法骨架,将一些步骤延迟到子类中
- 子类不可以改变算法的结构,但可以重定义算法的某些具体特定步骤
- 提供了一个代码复用平台,让不变的行为避免在子类中重复出现
- 让不变的行为搬到子类中,让子类重定义特定的步骤
class AbsstractClass
{
public:
virtual void PrimitiveOperation1()=0;
virtual void PrimitiveOperation2()=0;
void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
};
class ConcreteClassA :public AbsstractClass
{
public:
virtual void PrimitiveOperation1()
{
cout << "A类方法实现" << endl;
}
virtual void PrimitiveOperation2()
{
cout << "A类方法实现" << endl;
}
};
class ConcreteClassB :public AbsstractClass
{
public:
virtual void PrimitiveOperation1()
{
cout << "B类方法实现" << endl;
}
virtual void PrimitiveOperation2()
{
cout << "B类方法实现" << endl;
}
};