美文网首页
c++模板模式

c++模板模式

作者: 一路向后 | 来源:发表于2021-02-26 22:31 被阅读0次

1.模板模式简介

   在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

2.源码实现

#include <iostream>
#include <string>

using namespace std;

class AbstractClass
{
public:
    virtual void PrimitiveOperation1() = 0;
    virtual void PrimitiveOperation2() = 0;
    void TemplateMethod();
    virtual ~AbstractClass(){};
};

class ConcreteClass1 : public AbstractClass
{
public:
    virtual void PrimitiveOperation1();
    virtual void PrimitiveOperation2();
    ~ConcreteClass1(){};
};

class ConcreteClass2 : public AbstractClass
{
public:
    virtual void PrimitiveOperation1();
    virtual void PrimitiveOperation2();
    ~ConcreteClass2(){};
};

void AbstractClass::TemplateMethod()
{
    //模板方法定义算法骨架
    PrimitiveOperation1();
    PrimitiveOperation2();
}

void ConcreteClass1::PrimitiveOperation1()
{
    cout << "方法1算法步骤1" << endl;
}

void ConcreteClass1::PrimitiveOperation2()
{
    cout << "方法1算法步骤2" << endl;
}

void ConcreteClass2::PrimitiveOperation1()
{
    cout << "方法2算法步骤1" << endl;
}

void ConcreteClass2::PrimitiveOperation2()
{
    cout << "方法2算法步骤2" << endl;
}

int main(int argc, char **argv)
{
    AbstractClass *AC1 = new ConcreteClass1();
    AbstractClass *AC2 = new ConcreteClass2();

    AC1->TemplateMethod();
    AC2->TemplateMethod();

    delete AC1;
    delete AC2;

    return 0;
}

3.编译源码

$ g++ -o example example.cpp

4.运行及其结果

$ ./example
方法1算法步骤1
方法1算法步骤2
方法2算法步骤1
方法2算法步骤2

相关文章

  • c++模板模式

    1.模板模式简介    在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/...

  • 如何实现自动注册对象Factory

    目标 了解C++里的Factory模式应用场景、实现方法,采用模板实现带来的便利。 来源 A C++ Object...

  • C++ 模版 学习总结

    C++ 模版 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据...

  • C++设计模式之模板模式

    C++设计模式之模板模式 定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法...

  • Geekband C++ 第五周

    概述 C++模板简介 函数模板 C++类模板 操作符重载 泛型编程 容器

  • 【C++】面向对象之C++模板-005

    第五章 C++模板 5.1 模板概论 c++提供了函数模板(function template.)所谓函数模板,实...

  • 模板方法模式C++

    当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,通常考虑用模板...

  • C++设计模式-第一篇 (Boolan)

    C++设计模式-第一篇 (Boolan) 本章内容:1 面向对象设计原则2 GOF-23种设计模式分类3 模板方法...

  • GeekBand STL与泛型编程 第一周

    1.模板观念与函数模板 课程主要内容 C++模板简介 泛型编程 容器 进阶 C++模板简介   generic t...

  • 【C++设计模式】模板方法模式

网友评论

      本文标题:c++模板模式

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