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


模板方法是一种代码复用的基本技术,定义了一个操作中的算法骨架,而将一些步骤延迟到子类中
在使用模板方法时,很重要的一点是模板方法应当指明哪些操作是可以被重写的,以及哪些是必须被重写的。

 

 

#include <iostream>
using namespace std;


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


class ConcreteClassA : public AbstractClass {
public:    
    void PrimitiveOperation1() {
        cout << "具体类A方法1实现" << endl;
    }
    void PrimitiveOperation2() {
        cout << "具体类A方法2实现" << endl;
    }
};


class ConcreteClassB : public AbstractClass {
public:
    void PrimitiveOperation1() {
        cout << "具体类B方法1实现" << endl;
    }
    void PrimitiveOperation2() {
        cout << "具体类B方法2实现" << endl;
    }
};

int main()
{
    AbstractClass* a = new ConcreteClassA();
    a->TemplateMethod();

    AbstractClass* b = new ConcreteClassB();
    b->TemplateMethod();

    system("pause");
    return 0;
}

 

posted @ 2022-02-18 17:41  冰糖葫芦很乖  阅读(201)  评论(0编辑  收藏  举报