- 发送场景:
在软件构建过程中,对某一项任务,有稳定的操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架于应用之间的关系)而无法和任务的整体结构同时实现。
任何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或晚期实现需求?
template_Medhod_lib.hpp
//库开发
class Library
{
public:
//稳定的
void Run()
{
Step1();
if(Step2()) //支持变化 虚函数的多态调用
{
Step3();
}
for(int i=0;i<3;i++)
{
Step4(); //支持变化 虚函数的多态调用
}
Step5();
}
virtual ~Library(); //方便子类调用
protected:
virtual void Step1() //稳定的
{
}
virtual void Step3()
{
}
virtual void Step5()
{
}
virtual bool Step2() = 0; //变化
virtual void Step4() = 0; //变化
};
template_Medhod_app.hpp
class Application :public Library
{
protected:
virtual void Step2()
{
//子类重写
}
virtual void Step4()
{
//子类重写
}
};
int main()
{
Library * plib = new Application();
plib->Run();
delete plib;
}
晚绑定机制
需要一个稳定的算法骨架(Run()函数)