應用程序結構框架允許從一個或一組類中繼承以便創建一個新的應用程序,重用現存類中幾乎所有的代碼,并且覆蓋其中一個或多個函數以便自定義所需要的應用程序。應用程序結構框架中的一個基本的概念是模板方法模式,它很典型地隱藏在覆蓋的下方,通過調用基類的不同函數來驅動程序運行。
模板方法模式的一個重要特征是它的定義在基類中(有時作為一個私有成員函數)并且不能改動,模板方法模式就是“堅持相同的代碼“。它調用其他基類函數(就是那些被覆蓋的函數)以便完成其工作,但是客戶程序員不必直接調用這些函數。驅動應用程序運行的“引擎”是模板方法模式,示例代碼如下:
#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++編程思想卷二