设计模式C++实现笔记

TEMPALTE 模板(行为模式)

2019-03-04  本文已影响0人  lixin_karl

介绍

定义一个操作的算法骨架,而将一些步骤延迟到子类中。此模式可以使得不改变算法的结构,而改变一些特定的步骤。

参与者

AbstractClass 抽象类
ConcereteClass 具体实现
比如,我们将大象放到某个物体里。

实现代码

#include <iostream>

class PlaceElp {
public:
    void PlaceElpInObj()
    {
        OpenObj();
        PutElpInObj();
        CloseObj();
    }
    virtual void OpenObj() = 0;
    virtual void PutElpInObj() = 0;
    virtual void CloseObj() = 0;
};

class Fridge : public  PlaceElp{
public:
    void OpenObj()
    {
        std::cout<<"打开冰箱"<<std::endl;
    }
    void PutElpInObj()
    {
        std::cout<<"把大象放进去"<<std::endl;
    }
    void CloseObj()
    {
        std::cout<<"关上冰箱"<<std::endl;
    }
};

int main()
{
    PlaceElp *obj = new Fridge();
    obj->PlaceElpInObj();
    return 0;
}

输出

打开冰箱
把大象放进去
关上冰箱

特点

参考

《设计模式,可复用面向对象软件设计的基础》

上一篇 下一篇

猜你喜欢

热点阅读