模板方法定義了一個算法的步驟,並允許子類爲一個或多個步驟提供實現。
在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。
class ITemplate{
public:
virtual ~ITemplate(){}
virtual void templateMethod(){
operation1();
operation2();
operation3();
}
void operation1(){
//do someting.
}
virtual void operation2() = 0;
virtual void operation3() = 0;
}
class OjbectOnTemplate : public ITemplate{
public:
void operation2(){
//do someting.
}
void operation3(){
//do something.
}
}