当前位置: 首页 > 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 概括

在这里插入图片描述

相关文章:

【设计模式】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.Ste…...

关于2023.9.2~2023.9.10学习总结与教训

关于2023.9.2~2023.9.10学习总结与教训 语文古诗文与古诗基础阅读作文 数学几综卷子 英语物理政治总结待寻找的学习方法需应用的学习方法 语文 古诗文与古诗 背诵岳阳楼记和醉翁亭记的经验告诉我&#xff0c;应该在背诵时附以抄写同时在背下来后还应该去默写纠错&#xff0c;…...

NLTK:Python自然语言处理工具包及其参数使用详解

NLTK&#xff08;Natural Language Toolkit&#xff09;是一个领先的平台&#xff0c;用于构建处理人类语言数据的Python程序。它提供了易于使用的接口&#xff0c;用于超过50个语料库和词汇资源&#xff0c;如WordNet&#xff0c;以及一套文本处理库&#xff0c;用于分类、标记…...

php 之 php-fpm 和 nginx结合使用

php-fpm php-fpm是php面试必问的一个小考点&#xff0c;聊这个之前还是要铺垫一下&#xff0c;cgi 和 fastcgi。 CGI&#xff0c;通用网关接口&#xff0c;用于WEB服务器&#xff08;比如 nginx&#xff09;和应用程序&#xff08;php&#xff09;间的交互&#xff0c;简单的…...

数学建模笔记——TOPSIS[优劣解距离]法

数学建模笔记——TOPSIS[优劣解距离法] TOPSIS(优劣解距离)法1. 基本概念2. 模型原理3. 基本步骤4. 典型例题4.1 矩阵正向化4.2 正向矩阵标准化4.3 计算得分并归一化4.4 python代码实现 TOPSIS(优劣解距离)法 1. 基本概念 C. L.Hwang和 K.Yoon于1981年首次提出 TOPSIS(Techni…...

证书学习(四)X.509数字证书整理

目录 一、X.509证书 介绍1.1 什么是 X.509证书?1.2 什么是 X.509标准?1.3 什么是 PKI?二、X.509证书 工作原理2.1 证书认证机构(CA)2.1 PKI 的基础——加密算法2.2 PKI 证书编码三、X.509证书 结构3.1 证书字段3.2 证书扩展背景: 我们在日常的开发过程中,经常会遇到各种…...

氚云,低代码领风者如何破解行业的“中式焦虑”?

To B生意“难做”&#xff0c;很多公司的苦恼都难以掩盖。 上半年&#xff0c;一个“中国软件行业全军覆没”的帖子引发热烈讨论&#xff0c;评论竟是赞同的居多。那些以实现上市为目标的SaaS公司&#xff0c;或者已经上市的、主营业务为To B的企业&#xff0c;其整体的业绩状…...

“深入解析:MySQL半同步复制的配置指南与实践技巧“

本次配置是在已搭建好主从复制的架构中进行配置 配置环境 操作系统 master节点 slave节点 centos7 8.0.37 8.0.37 配置半同步复制 配置master 安装master半同步复制插件 INSTALL PLUGIN rpl_semi_sync_source SONAME semisync_source.so; 在MySQL的配置文件中添加配置…...

第四届长城杯部分wp

还是太菜了&#xff0c;要经常练了 1.BrickGame 读源码可以看到时间的值是由js设定的&#xff0c;所以控制台将timeleft的时间改成999999 通过游戏就可以得到flag 2.SQLUP 一道文件上传的题目&#xff0c;在登陆页面我用admin和1登陆成功了&#xff0c;但是按照正常的应该是…...

打造无死角安防网:EasyCVR平台如何助力智慧警务实现视频+AI的全面覆盖

一、背景概述 随着科技的飞速发展&#xff0c;智慧城市建设已成为提升社会治理能力、增强公共安全水平的重要途径。在警务领域&#xff0c;智慧警务作为智慧城市的重要组成部分&#xff0c;正通过融合视频监控技术与人工智能&#xff08;AI&#xff09;解决方案&#xff0c;实…...

批发订货系统源码怎么弄 门店订货系统小程序价格

上线批发订货系统可以显著提升业务效率和管理水平&#xff0c;它能够帮助企业自动化处理订单、实时跟踪库存、简化订单管理、生成数据报表…这些优势能最终帮助你降低成本、提高效率&#xff0c;提升业务竞争力。今天&#xff0c;小编为您分享批发订货系统源码怎么弄。大家点赞…...

终端安全如何防护?一文为你揭晓答案!

终端安全防护是确保组织内部网络及其连接设备免受威胁的关键措施。 以下是终端安全防护的一些核心方法&#xff1a; 1. 资产管理与识别 摸清家底&#xff1a;识别所有连接到网络的终端设备及其状态&#xff0c;包括硬件和软件配置。 资产分类&#xff1a;确定哪些资产最为关…...

价值流架构指南:构建业务创新与竞争优势的全面方法论

如何通过价值流引领企业数字化转型&#xff1f; 在当前数字化转型的背景下&#xff0c;企业面临的挑战日益复杂化&#xff1a;如何更快响应市场变化&#xff1f;如何优化资源配置提升效率&#xff1f;如何确保客户体验始终处于行业领先&#xff1f;《价值流指南》由The Open G…...

知识蒸馏(Knowledge Distillation)

Distilling the Knowledge in a Neural Network 知识蒸馏原理 1、Summarize 知识蒸馏技术 通过从大型的教师模型向小型的学生模型转移知识来实现模型压缩和优化。 知识蒸馏的核心思想是 利用教师模型在大量数据上积累的丰富知识&#xff0c;通过特定的蒸馏算法&#xff0c;使…...

【zsh】Linux离线安装zsh

首先从GitHub下载源码&#xff0c;然后编译源码后安装。以下是具体的步骤&#xff1a; 1. 下载并解压源码 首先&#xff0c;从GitHub下载了zsh源码的压缩包并解压到某个目录&#xff1a; tar -xvf zsh-<version>.tar.gz cd zsh-<version>2. 安装编译所需的依赖&…...

一款好用的电子样本册转换器

在数字化时代&#xff0c;电子样本册已成为各行各业必备的工具。一款好用的电子样本册转换器&#xff0c;可以让你在繁杂的资料管理中轻松解脱。今天&#xff0c;就为大家推荐一款实用的电子样本册转换神器&#xff0c;让你的工作效率翻倍&#xff01; 工具推荐&#xff1a;FLB…...

TDesign:腾讯的开源企业级前端框架,能和ant-design一战吗?

TDesign 是一套拥有完整的 设计价值观 和 视觉风格指南 的企业级设计体系&#xff0c;同时提供了丰富的 设计资源。TDesign 在设计体系基础上产出基于 Vue、React、小程序等业界主流技术栈的组件库解决方案。是不是有点晚了&#xff1f; 请大家各抒己见。...

大语言模型LLM权重4bit向量量化(Vector Quantization)/查找表量化基本原理

参考 https://apple.github.io/coremltools/docs-guides/source/opt-palettization-overview.html https://apple.github.io/coremltools/docs-guides/source/opt-palettization-algos.html Apple Intelligence Foundation Language Models 苹果向量量化&#xff1a; DKM:…...

学习threejs,创建立方体,并执行旋转动画

文章目录 一、前言二、代码示例三、总结 一、前言 本文基于threejs&#xff0c;实现立方体的创建&#xff0c;并加入立方体旋转动画 二、代码示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>l…...

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民&#xff0c;网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席20…...

Unity Qframework 加载UI的方式

如图所示 : // Resources 加载 UIKit.OpenPanel("Resources/UIPrefab/UIMenuPanel"); // Resources 加载并传递数据 UIKit.OpenPanel<UIMenuPanel>(new UIMenuPanelData() { m_Modle this.m_Modle }, prefabName: "UIPrefab/UIMenuPanel"); …...

使用 Python 创建自动抽奖程序

介绍 自动抽奖程序在各种场景中非常有用&#xff0c;比如社交媒体活动、公司抽奖、在线课程奖励等。在这篇博文中&#xff0c;我们将学习如何使用 Python 创建一个自动抽奖程序。我们将涵盖以下内容&#xff1a; 需求分析环境设置基本抽奖逻辑图形用户界面&#xff08;GUI&am…...

推荐10款功能强大的电脑监控软

随着工作环境和信息安全要求的不断提高&#xff0c;越来越多的企业和个人开始关注电脑监控软件。电脑监控软件能够帮助管理者监控员工工作效率、保护敏感信息、防止数据泄露等。下面&#xff0c;我们将为大家推荐10款功能强大的电脑监控软件&#xff0c;涵盖国内外的知名产品&a…...

‘“node“‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

错误信息 使用vscode提交前端代码到git时&#xff0c;报下面的错&#xff0c;一直不知道啥原因&#xff0c;后来找到了个临时解决方案。。。 vscode解决方案 package.json文件中&#xff0c;去掉hooks的配置。 Idea解决方案 网上有说idea的解决方案的&#xff1a;就是提…...

MQ-135空气质量传感器(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理介绍 三、程序设计 main.c文件 mq135.h文件 mq135.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 MQ-135空气质量传感器属于MQ系列气体传感器&#xff0c;广泛用于检测有害气体、新鲜空气中的烟…...

动手学深度学习(pytorch)学习记录27-深度卷积神经网络(AlexNet)[学习记录]

目录 创建模型读取数据集训练AlexNet AlexNet 是由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在 2012 年提出的深度卷积神经网络&#xff0c;它在当年的 ImageNet 大规模视觉识别挑战赛&#xff08;ILSVRC&#xff09;中取得了显著的成绩&#xff0c;从而引起了深度…...

zookeeper是啥?在kafka中有什么作用

一、Zookeeper是啥 问AI&#xff0c;它是这么说&#xff1a; ZooKeeper是一个开源的分布式协调服务。 ZooKeeper最初由雅虎研究院开发&#xff0c;用于解决大型分布式系统中的协调问题&#xff0c;特别是为了避免分布式单点故障。它被设计成一个简单易用的接口集&#xff0c;封…...

华为手机集大成之作?带你看全球首款三折叠手机 Mate XT 非凡大师

北京时间9月10日14:30分&#xff0c;华为终端在深圳召开了华为见证非凡品牌盛典及鸿蒙智行新品发布会。这次发布会最受瞩目的莫过于非凡大师系列的新品、全球首款三折叠手机Mate XT 非凡大师。 三折叠形态&#xff0c;内外铰链存于一体 尽管三折叠的概念被提出来的时间并不算…...

构建安全畅通的道路网络:EasyCVR视频汇聚平台在道路监控中的创新应用

随着城市化进程的加速和交通流量的不断增加&#xff0c;道路监控已成为确保交通安全、维护社会秩序的重要手段。道路上的监控摄像头多种多样&#xff0c;大致可以分为这几类&#xff1a;交通道路监控、治安监控、路口违章监控&#xff0c;以及车辆测速监控等。基于智慧交通的需…...

Mac M1安装Hive

一、下载解压Hive 1.官网地址 https://dlcdn.apache.org/hive/ 2.选择对应版本进行下载&#xff0c;这里我以3.1.3为例&#xff1b; 3.下载好后&#xff0c;进行解压&#xff0c;并重命名为hive-3.1.3&#xff0c;放到资源库目录下&#xff1b; 二、配置系统环境 1.打开~/…...