【设计模式】
来源:互联网 发布:境外网络电视直播apk 编辑:程序博客网 时间:2024/06/06 11:43
模板模式是指在模板中将算法的基本步骤都定义好,每个步骤的具体实现放在子类中去实现,比如泡茶、泡牛奶和泡咖啡的基本步骤都可以分为烧开水、加原料、冲泡,其中加原料这一步的具体实现冲每种饮料都不同,应该放在具体子类中去实现,见代码:
#pragma once#include<iostream>using namespace std;class IDrink{public:virtual void fun() = 0;};template<typename T,typename BaseT = IDrink>class DrinkImpl : public IDrink{public:DrinkImpl(){}~DrinkImpl(){} virtual void fun() { T* pT = static_cast<T*>(this); f1(); pT->f2(); f3(); }protected: void f1() { cout<<"烧热水\n"; } void f3() { cout << "可以喝了\n"; }};class Coffee : public DrinkImpl<Coffee>{public:void f2(){cout << "冲咖啡\n";}};class Tea : public DrinkImpl<Tea>{public:void f2(){cout << "冲茶\n";}};class Milk : public DrinkImpl<Milk>{public:void f2(){cout << "冲牛奶\n";}};
#include"Test.h"#include <time.h>int main(){IDrink* pCoffee = new Coffee;IDrink* pTea = new Tea;IDrink* pMilk = new Milk;pCoffee->fun();pTea->fun();pMilk->fun();delete pMilk;delete pTea;delete pCoffee;system("pause");}
输出结果:
烧热水冲咖啡
可以喝了
烧热水
冲茶
可以喝了
烧热水
冲牛奶
可以喝了
请按任意键继续. . .
注:这里为模板三个类加了一个接口
0 0
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式~~~~~~~~~~
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 关于unicode汉字范围正则表达式的写法
- MyEclipse2016中部署Tomcat
- 使用老毛桃制作U盘启动盘
- HDU4284(状态压缩dp)
- tjut 2897
- 【设计模式】
- hashMap的内部实现原理
- 某生理检测仪对接-体温保存--Format函数
- 第九天:按键及中断原理
- 面试指导
- 《React-Native系列》13、 组件封装之Dialog(iOS和Android通用)
- 《Head First Java》笔记(1)
- zcmu1617
- Windos DOS命令汇总