美文网首页
行为模式3-模板方法

行为模式3-模板方法

作者: sunblog | 来源:发表于2018-04-16 23:32 被阅读0次

    行为模式3-模板方法

    模板方法Template Method

    意图

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。

    问题思考

    父类是Application,有两个子类Win32Application, LinuxApplication。考虑在不同操作系统下打开图片文件并转化成对应操作系统风格的图标。Application只负责定义步骤:1.打开图片;2.转化成图标。具体的实现有Application子类来完成。

    实际上,我们在日常的开发中大量的使用了模板方法。

    适用性

    • 定义一系列抽象方法的执行步骤,具体的子类将重定义各抽象方法以实现各步骤。

    类图

    template_method

    实现

    class AbstractClass {
    public:
        void Template() {
            Operation1();
            Operation2();
        }
    
        virtual void Operation1() = 0;
    
        virtual void Operation2()  = 0;
    };
    
    class ConcreteClass : public AbstractClass {
    public:
        void Operation1() override {
            std::cout << "Hello template 1" << std::endl;
        }
    
        void Operation2() override {
            std::cout << "Hello template 2" << std::endl;
        }
    };
    
    

    相关文章

      网友评论

          本文标题:行为模式3-模板方法

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