美文网首页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