/*
模板方法模式是实现一个模板父类,父类实现所有重复的代码
让子类可以修改父类维持的元素或者函数,子类可以利用多态、根据需要重写父类
*/
#include <iostream>
#include <string>

using namespace std;
typedef string(*PFUNC) ();

class TemplateClass
{
public:
    virtual string Answer1()
    {
        return "";
    }
    virtual string Answer2()
    {
        return "";
    }
    
public:
    void TestQuestion1() 
    {
        cout << "题目:。。。。。。。1" << endl;
    }
    void TestQuestion2()
    {
        cout << "题目2:   打发方法啊发发福利和" << endl;
    }
};

class Paper1 : public TemplateClass
{
public:
    virtual string Answer1()
    {
        return "c";
    }
    virtual string Answer2()
    {
        return "d";
    }
};

class Paper2 :public TemplateClass
{
public:
    virtual string Answer1()
    {
        return "b";
    }
    virtual string Answer2()
    {
        return "c";
    }

};

void Test()
{
    Paper1 *p1 = new Paper1();
    Paper2 *p2 = new Paper2();
    p1->TestQuestion1();
    cout << p1->Answer1() << endl;
    p1->TestQuestion2();
    cout << p1->Answer2() << endl;
    p2->TestQuestion1();
    cout << p2->Answer1() << endl;
    p2->TestQuestion2();
    cout << p2->Answer2() << endl;
    if (p1 != NULL)
    {
        delete p1;
        p1 = NULL;
    }
    if (p2 != NULL)
    {
        delete p2;
        p2 = NULL;
    }
}

int main()
{
    Test();
    system("pause");
    return EXIT_SUCCESS;
}

10 大话设计模式C++实现之模板方法模式相关推荐

  1. 大话设计模式(8)模板方法模式

    一.场景及UML图 场景:有点类似于原型模式,不过侧重点不一样.模板方法重点是体现在代码复用.把一些重复性的机制代码全部抽离到父类. 二.概念 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延 ...

  2. java 模板方法_设计模式(java实现)_模板方法模式(Template method)

    设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...

  3. python设计模式【7】-模板方法模式

    UML类图简介 设计模式的分类 面向对象的设计原则 python设计模式[1]-单例模式 python设计模式[2]-工厂模式 python设计模式[3]-门面模式 python设计模式[4]-代理模 ...

  4. 大话设计模式Python实现-简单工厂模式

    简单工厂模式(Simple Factory Pattern):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 下面使用简单工厂模式实现一个简单的四则运算 1 #!/us ...

  5. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---模板方法模式之CoffeineBeverageWithHook[转]...

    模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override).   1   2{<HeadFirst设计模式>之模板方法模式 }   3{ 编译工具: Del ...

  6. lt;二gt;读lt;lt;大话设计模式gt;gt;之策略模式

    又和大家见面了.可以坚持写出第二篇文章真不错,好好加油. <<大话设计模式>>解说策略模式是以商场收银软件程序开头的,那么问题来了.哪家商场收银软件强,开玩笑了. 读过上篇文章 ...

  7. 设计模式(二)模板方法模式

    1.模版方法模式简介 模版方法模式介绍 在软件开发中,有时会遇到类似的情况,某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性.为了提高代码的复用性和系统的灵活性,可以使 ...

  8. 行为型设计模式(2)—— 模板方法模式(Template Method Pattern)

    文章目录 1.概述 2.简单实现 3.使用场景和优缺点 4.小结 参考文献 1.概述 使用设计模式可以提高代码的可复用性.可扩充性和可维护性. 模板方法模式(Template Method Patte ...

  9. C++设计模式之Template Method(模板方法模式)

    模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合, 打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我 ...

最新文章

  1. 概率x^2 t F三大分布的联系
  2. 从Python调用外部命令
  3. Charles+Android模拟器里抓http请求(配置模拟器教程)
  4. Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  5. Java开发入门与实战!打印杨辉三角java代码
  6. k8s nodeSelector和affinity
  7. liunx安装Lamp
  8. Python读取csv数据文件,并按照指定比例划分为机器学习使用的训练集和测试集
  9. String.valueOf()方法的使用总结
  10. Canvas beginPath()、moveTo()、 lineTo() 、stroke() 绘制直线路径,fillText() 绘制填色的文本
  11. 浅谈Delphi过程与函数03 - 零基础入门学习Delphi22
  12. EDA技术实用教程 | 复习九 | 数据选择器的行为级描述
  13. InstallShield 2015 Limited Edition 打包教程
  14. 牛刀小试-Promise
  15. 【开始报名】第二届中国移动“梧桐杯”大数据应用创新大赛邀你夺52w大奖
  16. PMP考试 工作绩效数据 工作绩效信息 工作绩效报告 区别与联系
  17. 云虚拟主机bch 和 云服务器bcc,云虚拟主机bch 和 云服务器bcc
  18. 思泰克IPO过会:上半年营收1.9亿 元禾璞华与赛富金钻是股东
  19. 【数据结构】表达式建树
  20. HTML零基础入门学习大全-干货!

热门文章

  1. 51 Best DevOps Tools for #DevOps Engineers
  2. ESP8266 接入阿里物联网平台实现远程控制LED
  3. 2020年,你必须掌握的前端技术栈
  4. 记录Hbuilder项目使用xcode离线打包上传苹果商店踩过的坑
  5. 国际清算银行成员发布央行数字货币分析报告
  6. 微信小程序 index.js获取app.js异步请求的动态数据
  7. Java Web基础面试题
  8. 【CSS3】一些听课记录(样例代码)
  9. 【CV/Matlab系列】基于图像处理的苹果质量检测和分级系统【含Matlab源码】
  10. UE4随笔 —— 角色动画的骨骼重定向