应用程序结构框架允许从一个或一组类中继承以便创建一个新的应用程序,重用现存类中几乎所有的代码,并且覆盖其中一个或多个函数以便自定义所需要的应用程序。应用程序结构框架中的一个基本的概念是模板方法模式,它很典型地隐藏在覆盖的下方,通过调用基类的不同函数来驱动程序运行。
模板方法模式的一个重要特征是它的定义在基类中(有时作为一个私有成员函数)并且不能改动,模板方法模式就是“坚持相同的代码“。它调用其他基类函数(就是那些被覆盖的函数)以便完成其工作,但是客户程序员不必直接调用这些函数。驱动应用程序运行的“引擎”是模板方法模式,示例代码如下:
#include<iostream>
using namespace std;
class ApplicationFramework
{
protected :
virtual void customize1()=0;
virtual void customize2()=0;
public:
void templateMethod()
{
for(int i=0;i<5;i++)
{
customize1();
customize2();
}
}
};
class MyApp: public ApplicationFramework
{
protected:
void customize1(){cout<<"Hello";}
void customize2(){cout<<"World!"<<endl;}
};
int main()
{
MyApp app;
app.templateMethod();
}
参考:c++编程思想卷二