模板模式

 

定义一个操作中的固定的算法骨架,而将一些步骤延迟到子类中。
把固定的实现写在基类中,变化的部分定为纯虚函数,由子类实现。

 

场景:
1、在软件构建过程中,对于某一项,它常常有稳定的整体操作结构。但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架和应用之间的关系)
而无法和合任务的整体结构同时实现。 2、如何在确定稳定操作结构的前提下,来灵活应对各个步骤的变化或者晚期实现需求?

 

class Library
{
public:
     void run()
     {
        step1();
        step2();
        step3();
        step4();
        step5();
    } 
protected:
    void step1(){}
    void step2(){}
    void step3(){}
    virtual void step4() = 0; 
    virtual void step5() = 0; 
};

class Application :public Library
{
protected:
    virtual void step4(){//...}
    virtual void step5() {//...}
};

 

Library *a = new Application();
a->run();

 

posted @ 2018-12-13 21:28  osbreak  阅读(126)  评论(0编辑  收藏  举报