C++设计模式设计模式 BY C++

C++ 设计模式 —— 23.模板方法模式

2020-01-16  本文已影响0人  JeremyYv

以下是模板方法模式的简单代码实现
#include <iostream>
using namespace std;

//默认的模板方法类
class DefaultTemplate
{
public:
    //固定的模板方法流程
    void TemplateMethod()
    {
        Step1();
        Step2();
        Step3();
    }

private:
    virtual void Step1()
    {
        cout << "Default Step1" << endl;
    }
    virtual void Step2()
    {
        cout << "Default Step2" << endl;
    }
    virtual void Step3()
    {
        cout << "Default Step3" << endl;
    }
};

//重写步骤1、3
class NewTemplate:public DefaultTemplate
{
private:
    virtual void Step1()
    {
        cout << "New Step1" << endl;
    }
    virtual void Step3()
    {
        cout << "New Step3" << endl;
    }
};
主函数中的使用
int main()
{
    DefaultTemplate oDefault;
    oDefault.TemplateMethod();

    NewTemplate oNew;
    oNew.TemplateMethod();
    return 0;
}
控制台输出结果
Default Step1
Default Step2
Default Step3
New Step1
Default Step2
New Step3

如有错误,欢迎指正

上一篇 下一篇

猜你喜欢

热点阅读