天天看點

【設計模式】之九Template Method

Type: Behavioral

Template Method:在一個操作中定義一個算法的骨架,将一些步驟推遲到子類中。讓子類在不修改算法結構的基礎上重新定義其中步驟。

#include <iostream>
using namespace std;

class AbstractClass
{
public:
    void templateMethod()
    {
        cout<<"AbstractClass: Call subMethod"<<endl;
        subMethod();
    };
protected:
    virtual void subMethod();
};

class ConcreteClass: public AbstractClass
{
public:
    void subMethod()
    {
        cout<<"ConcreteClass: subMethod"<<endl;
    };
};

int main()
{
	ConcreteClass* pConcreteClass = new ConcreteClass;
	pConcreteClass->templateMethod();

	system("pause");

	return 0;
}