美文网首页设计模式C++实现笔记
TEMPALTE 模板(行为模式)

TEMPALTE 模板(行为模式)

作者: lixin_karl | 来源:发表于2019-03-04 20:30 被阅读0次

    介绍

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

    参与者

    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;
    }
    

    输出

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

    特点

    • 代码复用
    • 钩子操作,提供了缺省的行为

    参考

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

    相关文章

      网友评论

        本文标题:TEMPALTE 模板(行为模式)

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