美文网首页C++设计模式设计模式 BY C++
C++ 设计模式 —— 23.模板方法模式

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

作者: JeremyYv | 来源:发表于2020-01-16 16:49 被阅读0次
  • 模板方法模式:一种行为型设计模式

  • 应用场景:
    模板方法是一种代码复用的基本技术,定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。
    在使用模板方法时,很重要的一点是模板方法应当指明哪些操作是可以被重写的,以及哪些是必须被重写的。
    此设计模式比较简单,直接看代码吧。

以下是模板方法模式的简单代码实现
#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

如有错误,欢迎指正

相关文章

网友评论

    本文标题:C++ 设计模式 —— 23.模板方法模式

    本文链接:https://www.haomeiwen.com/subject/aeafzctx.html