10 大话设计模式C++实现之模板方法模式
/*
模板方法模式是实现一个模板父类,父类实现所有重复的代码
让子类可以修改父类维持的元素或者函数,子类可以利用多态、根据需要重写父类
*/
#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++实现之模板方法模式相关推荐
- 大话设计模式(8)模板方法模式
一.场景及UML图 场景:有点类似于原型模式,不过侧重点不一样.模板方法重点是体现在代码复用.把一些重复性的机制代码全部抽离到父类. 二.概念 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延 ...
- java 模板方法_设计模式(java实现)_模板方法模式(Template method)
设计模式(java实现)_模板方法模式(Template method) 模板方法模式是编程中经常用到到的模式.它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现.这样,新的子类可以在不改变一个 ...
- python设计模式【7】-模板方法模式
UML类图简介 设计模式的分类 面向对象的设计原则 python设计模式[1]-单例模式 python设计模式[2]-工厂模式 python设计模式[3]-门面模式 python设计模式[4]-代理模 ...
- 大话设计模式Python实现-简单工厂模式
简单工厂模式(Simple Factory Pattern):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 下面使用简单工厂模式实现一个简单的四则运算 1 #!/us ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---模板方法模式之CoffeineBeverageWithHook[转]...
模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override). 1 2{<HeadFirst设计模式>之模板方法模式 } 3{ 编译工具: Del ...
- lt;二gt;读lt;lt;大话设计模式gt;gt;之策略模式
又和大家见面了.可以坚持写出第二篇文章真不错,好好加油. <<大话设计模式>>解说策略模式是以商场收银软件程序开头的,那么问题来了.哪家商场收银软件强,开玩笑了. 读过上篇文章 ...
- 设计模式(二)模板方法模式
1.模版方法模式简介 模版方法模式介绍 在软件开发中,有时会遇到类似的情况,某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性.为了提高代码的复用性和系统的灵活性,可以使 ...
- 行为型设计模式(2)—— 模板方法模式(Template Method Pattern)
文章目录 1.概述 2.简单实现 3.使用场景和优缺点 4.小结 参考文献 1.概述 使用设计模式可以提高代码的可复用性.可扩充性和可维护性. 模板方法模式(Template Method Patte ...
- C++设计模式之Template Method(模板方法模式)
模板方法模式总结起来就是灵活运用C++的多态性,灵活运用普通函数,虚函数,纯虚函数的组合, 打个比方,每个人每天的生活都不一样,老师要上课,学生要学习,程序员要编程,但是每个人都需要吃饭与休息,这样我 ...
最新文章
- 概率x^2 t F三大分布的联系
- 从Python调用外部命令
- Charles+Android模拟器里抓http请求(配置模拟器教程)
- Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
- Java开发入门与实战!打印杨辉三角java代码
- k8s nodeSelector和affinity
- liunx安装Lamp
- Python读取csv数据文件,并按照指定比例划分为机器学习使用的训练集和测试集
- String.valueOf()方法的使用总结
- Canvas beginPath()、moveTo()、 lineTo() 、stroke() 绘制直线路径,fillText() 绘制填色的文本
- 浅谈Delphi过程与函数03 - 零基础入门学习Delphi22
- EDA技术实用教程 | 复习九 | 数据选择器的行为级描述
- InstallShield 2015 Limited Edition 打包教程
- 牛刀小试-Promise
- 【开始报名】第二届中国移动“梧桐杯”大数据应用创新大赛邀你夺52w大奖
- PMP考试 工作绩效数据 工作绩效信息 工作绩效报告 区别与联系
- 云虚拟主机bch 和 云服务器bcc,云虚拟主机bch 和 云服务器bcc
- 思泰克IPO过会:上半年营收1.9亿 元禾璞华与赛富金钻是股东
- 【数据结构】表达式建树
- HTML零基础入门学习大全-干货!