当前位置: 首页 > news >正文

【设计模式】Template Method伪代码

1. 不好的代码

1.1 lib.cpp

class Library{
public:void Step1(){//...}void Step3(){//...}void Step5(){//...}
};

1.2 app.cpp

class Application{
public:bool Step2(){//...}void Step4(){//...}
};int main()
{Library lib();Application app();lib.Step1();if(app.Step2()){lib.Step3();}for(int i=0; i<4; i++){app.Step4();}lib.Step5();
}

1.3 概括

在这里插入图片描述

2. 好的代码

2.1 lib.cpp

class Library{
public://稳定 template methodvoid Run(){Step1();if(Step2()){	//支持变化 ==> 虚函数的多态调用Step3();}for(int i=0; i<4; i++){Step4();	//支持变化 ==> 虚函数的多态调用}Step5();}virtual ~Library(){ }protected:void Step1(){ //稳定//...}void Step3(){ //稳定//...}void Step5(){ //稳定//...}virtual bool Step2() = 0;	//变化virtual void Step4() = 0;	//变化};

2.2 app.cpp

class Application : public Library{
protected:virtual bool Step2(){//... 子类重写实现}virtual void Step4(){//... 子类重写实现}
};int main()
{Library* pLib = new Application();pLib->Run();delete pLib;
}

2.3 概括

在这里插入图片描述

http://www.lryc.cn/news/434572.html

相关文章:

  • 关于2023.9.2~2023.9.10学习总结与教训
  • NLTK:Python自然语言处理工具包及其参数使用详解
  • php 之 php-fpm 和 nginx结合使用
  • 数学建模笔记——TOPSIS[优劣解距离]法
  • 证书学习(四)X.509数字证书整理
  • 氚云,低代码领风者如何破解行业的“中式焦虑”?
  • “深入解析:MySQL半同步复制的配置指南与实践技巧“
  • 第四届长城杯部分wp
  • 打造无死角安防网:EasyCVR平台如何助力智慧警务实现视频+AI的全面覆盖
  • 批发订货系统源码怎么弄 门店订货系统小程序价格
  • 终端安全如何防护?一文为你揭晓答案!
  • 价值流架构指南:构建业务创新与竞争优势的全面方法论
  • 知识蒸馏(Knowledge Distillation)
  • 【zsh】Linux离线安装zsh
  • 一款好用的电子样本册转换器
  • TDesign:腾讯的开源企业级前端框架,能和ant-design一战吗?
  • 大语言模型LLM权重4bit向量量化(Vector Quantization)/查找表量化基本原理
  • 学习threejs,创建立方体,并执行旋转动画
  • 2024网安周今日开幕,亚信安全亮相30城
  • Unity Qframework 加载UI的方式
  • 使用 Python 创建自动抽奖程序
  • 推荐10款功能强大的电脑监控软
  • ‘“node“‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���
  • MQ-135空气质量传感器(STM32)
  • 动手学深度学习(pytorch)学习记录27-深度卷积神经网络(AlexNet)[学习记录]
  • zookeeper是啥?在kafka中有什么作用
  • 华为手机集大成之作?带你看全球首款三折叠手机 Mate XT 非凡大师
  • 构建安全畅通的道路网络:EasyCVR视频汇聚平台在道路监控中的创新应用
  • Mac M1安装Hive
  • shader 案例学习笔记之绘制圆