首页 > 其他分享 >模板模式

模板模式

时间:2023-12-11 14:23:14浏览次数:31  
标签:startOrder make virtual MakeOrder 模式 void 模板

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //PC机,手机,平板
 5 class MakeOrder {
 6 public:
 7     //virtual void startOrder() =0;第一版
 8     //钩子函数的模板方法
 9     virtual void startOrder() {
10         cout << "下订单了" << endl;
11     }
12     virtual void replyStart()=0;
13     //.....
14     virtual void finishOrder()=0;
15     virtual void replyFinish()=0;
16     //模板模式
17     void make() {
18         startOrder();
19         replyStart();
20         finishOrder();
21         replyFinish();
22     }
23 protected:
24     MakeOrder(){}
25 };
26 
27 class Fanuc :public MakeOrder {
28 public:
29     void startOrder() {
30         cout << "Fanuc开始接受订单" << endl;
31     }
32     void replyStart() {
33         cout << "Fanuc做好预备,请将后继订单进入排队" << endl;
34     }
35     //.....
36      void finishOrder() {
37          cout << "本次Fanuc订单已经完成,请推进下个订单进入生产" << endl;
38     }
39      void replyFinish() {
40          cout << "Fanuc订单信号已经送达,即将推进下个订单进入生产" << endl;
41      }
42 };
43 
44 class Sims :public MakeOrder {
45 public:
46     void startOrder() {
47         cout << "Sims开始接受订单" << endl;
48     }
49     void replyStart() {
50         cout << "Sims做好预备,请将后继订单进入排队" << endl;
51     }
52     //.....
53     void finishOrder() {
54         cout << "本次Sims订单已经完成,请推进下个订单进入生产" << endl;
55     }
56     void replyFinish() {
57         cout << "Sims订单信号已经送达,即将推进下个订单进入生产" << endl;
58     }
59 };
60 
61 class Mits :public MakeOrder {
62 public:
63     
64     void replyStart() {
65         cout << "Sims做好预备,请将后继订单进入排队" << endl;
66     }
67     //.....
68     void finishOrder() {
69         cout << "本次Sims订单已经完成,请推进下个订单进入生产" << endl;
70     }
71     void replyFinish() {
72         cout << "Sims订单信号已经送达,即将推进下个订单进入生产" << endl;
73     }
74 };
75 
76 int main(void) {
77     //MakeOrder* pMakeOrder = new Fanuc;
78     //pMakeOrder->make();
79     MakeOrder* pMakeOrder = new Mits;
80     pMakeOrder->make();
81     system("pause");
82     return 0;
代码示例

 

标签:startOrder,make,virtual,MakeOrder,模式,void,模板
From: https://www.cnblogs.com/zeliangzhang/p/17894293.html

相关文章

  • (来一套)JavaScript并查集模板
    code: classUnionFind{constructor(n){this.parent=Array.from({length:n},(_,i)=>i);this.size=newArray(n).fill(1);this.cnt=n;}findset(x){if(this.parent[x]===x){returnx......
  • 设计模式之责任链模式
    1.定义请求沿着一条链传递,直到有一个对象能够处理它为止2.口语化表述假设某公司的财务审批流程如下:项目经理可以审批1000元以下的费用,大于1000元的费用提交给部门经理审批部门经理可以审批10000元以下的费用,大于10000的费用提交给总经理审批总经理可以审批任何额度的费用......
  • 第五十八天 网页伪静态,视图层,模板层
    内容概要网页伪静态视图层1.三板斧2.JsonResponse3.form表单上传文件4.FBV与CBV(核心)5.CBV源码(面向对象)模板层1.模板语法传值2.模板语法之过滤器3.模板语法之标签4.自定义过滤器、标签、inclusion_tag一、网页伪静态将动态网页伪装成静态网页从而提升网页被......
  • 抽象工厂模式:角色解析与应用探索
    前言工厂模式一般指的是简单工厂模式、工厂方法模式、抽象工厂模式,这是三种工厂模式的最后一篇,其他两种的文章链接如下:设计模式之是简单工厂模式_凡夫编程的技术博客_51CTO博客工厂方法模式:改变你对软件开发的认知_凡夫编程的技术博客_51CTO博客建议三种模式放在一起对比学习,更能......
  • oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
    一、用途强行启用并行度来执行当前SQL。这个在Oracle9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会......
  • 设计模式-访问者模式(主要理解“双重分派”)
    代码展示:packagecom.example.test;importjava.util.ArrayList;importjava.util.List;publicclass访问者模式{}abstractclassDepartment{abstractvoidvisit(FullTimeEmployeefullTimeEmployee);//正式工的访问abstractvoidvisit(PartTimeEmployee......
  • java 策略模式解决if-else ,函数式接口解决编写多个子类的问题
    /***@author:szc*@date:2023/9/222:45*@version:1.0*@description:从map中获取函数式接口,解决if-else多个子类问题*/@ServicepublicclassMapToInterface{@AutowiredprivateTypeResulttypeResult;privatestaticMap<String,Functio......
  • 23种设计模式——桥接模式
    今天我们继续学习23种设计模式中的桥接模式。所谓桥接模式就是将抽象部分和实现部分隔离开来,使得它们能够独立变化。桥接模式将继承关系转化成关联关系,封装了变化,完成了解耦,减少了系统中类的数量,也减少了代码量。概念:桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。......
  • 算法竞赛模板整理
    图论最短路structSPFA{vector<i64>dis;vector<bool>vis;vector<int>from;intn;SPFA(vector<vector<pair<int,i64>>>&g,ints):n(g.size()){dis.assign(n,INF),vis.assign(n,false),f......
  • 设备驱动设计模式 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/driver-model/design-patterns.html设备驱动设计模式这份文档描述了设备驱动中常见的设计模式。子系统维护者可能会要求驱动开发者遵循这些设计模式。状态容器container_of()1.状态容器虽然内核中包含一些设备驱动,假......