c++ design pattern for template method

write demo code to describe this pattern,you can wrap some step that must do,but someone of step is not make sure,that should confirmed by subclass in running time.

/*************************************************************************
    > File Name: template_method.cc
  > Author: perrynzhou
  > Mail: perrynzhou@gmail.com
  > Created Time: Tue 15 Aug 2017 07:11:20 AM EDT
 ************************************************************************/

#include <iostream>
using namespace std;
class IDocument {
public:
    IDocument() { cout << "IDocument" << endl; }
    void run()
    {
        step0();
        step1();
        step2();
        step3();
    }

private:
    virtual void step3() = 0;
    void step0() { cout << "...call step0..." << endl; }
    void step1() { cout << "...call step1..." << endl; }
    void step2() { cout << "...call step2..." << endl; }
};
class MyDocument : public IDocument {
public:
    MyDocument() { cout << "MyDocument" << endl; }
private:
    void step3() { cout << "...call MyDocument.step3..." << endl; }
};
int main(void)
{
    MyDocument md;
    md.run();
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,864评论 0 23
  • 推荐给各位科研工作者一本好书:writing science。这本书不同于其他教写作的书,不是从写作的角度教你具体...
    石博士阅读 5,389评论 1 17
  • 如果姑娘喜欢你 她就会坐着火车来看你 微微颤抖的车厢下 车轮一声声撞着铁轨 火车在原野上穿行 季节在窗外忽明忽暗 ...
    阿睦瓦阅读 323评论 0 1
  • 刚才看一个人写的文章大致是登山入寺,写了写山上一游的景致。实在是无趣的紧。像一张手机自带相机拍出来的照片,没有任何...
    alfhy阅读 474评论 3 1
  • “我支付宝有7万多块,微信有2万多块,如果我哪天突然意外死了,这些钱会怎么处理(我的家人并不知道这笔钱)?”近日,...
    一个人的行走阅读 886评论 0 0