C++常用设计模式

news/2024/10/11 19:51:18/文章来源:https://blog.csdn.net/JackerCSDN/article/details/142145446

一、单例模式

1.1 含义

        单例模式适用于生成唯一对象、需要频繁创建和销毁的环境。

需求: 1. 构造函数、operator=、拷贝构造函数 私有化

             2. 构造一个静态指针

             3. 构造一个静态函数创建实例

1.2 懒汉模式

 懒汉:在第一个调用函数是才申请空间,但容易产生线程安全问题。

class SingleTon  {
private :SingleTon() {}SingleTon(const SingleTon& s) = delete;SingleTon& operator=(const SingleTon& s) = delete;
public :static SingleTon* singleTon;static SingleTon* getInstance() {if (singleTon == nullptr) {singleTon = new SingleTon;}return singleTon;}
};
SingleTon* SingleTon::singleTon = nullptr;int main(int argc, char* argv[]) {SingleTon* ss = SingleTon::getInstance();return 0;
}

1.3 饿汉模式

 饿汉:直接在类外创建对象。程序已启动就申请了空间,线程安全,但占用资源。

class SingleTon  {
private :SingleTon() {}SingleTon(const SingleTon& s) = delete;SingleTon& operator=(const SingleTon& s) = delete;
public :static SingleTon* singleTon;static SingleTon* getInstance() {return singleTon;}
};
SingleTon* SingleTon::singleTon = nullptr;int main(int argc, char* argv[]) {SingleTon* ss = new SingleTon;return 0;
}

 二、工厂模式

2.1 需求:

        1. 创建一个抽象工厂类:所有具体工厂类的父类

        2. 创建与产品对应的工厂类:负责实例化产品对象

        3. 提供一个抽象产品类:所有产品的父类

        4. 提供一个或多个产品类:共产模式所创建的具体对象实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/441299.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html+css网页设计 旅游 雪花旅行社5个页面

htmlcss网页设计 旅游 雪花旅行社5个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…

Linux(RedHat或CentOS)下如何开启telnet服务

一、Telnet服务介绍 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入…

LOOKUP函数和VLOOKUP函数知识讲解与案例演示

〇、需求 在 Excel 文档中,根据查找值从查找域和结果域构成的数组中,找到对应的结果值。 一、知识点讲解 LOOKUP函数(比较常用,推荐)和VLOOKUP函数 两个公式都可以实现上述需求。 1. LOOKUP 函数 1.1 单个查询条件…

基于SpringBoot+Vue+MySQL的考编论坛网站

系统展示 用户前台界面 管理员后台界面 系统背景 在当前信息化高速发展的时代,考编已成为众多求职者的重要选择。然而,备考过程中信息获取、经验交流及资源分享的需求日益凸显。基于SpringBoot、Vue.js与MySQL构建的考编论坛网站应运而生,旨在…

链表相关OJ

目录 1、移除链表元素 (1)题目描述 (2)算法原理 2、链表的中间结点 (1)题目描述 (2)算法原理 3、链表中倒数第K个结点 (1)题目描述 &#xff0…

初识Linux · 进程(2)

目录 前言: 有关进程的相关理解 前言: 本文会开始慢慢切入进程了,当然,切入进程之前,我们需要再次复习一下操作系统,后面接着是介绍什么是进程,如何查看进程,在Linux中对应的文件…

Emlog程序屏蔽用户IP拉黑名单插件

插件介绍 在很多时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单,感兴趣的可以参考一下。 今天给大家带来舍力写的emlog插件:屏蔽…

Meme“淘金”热潮下:Meme发射平台的安全风险分析

2023年,Meme赛道成为加密市场和各大公链生态的重点关注板块之一,尤其是在Solana等公链上,Meme代币迎来了爆发。许多Meme代币的交易量飙升,年初Solana生态中的Meme代币交易额甚至达到百亿美元。乘着Meme代币的东风,Meme…

Pycharm 输入三个引号没有自动生成函数(方法)注释

配置项路径:pycharm–>Settins–>Tools–>Python Integrated Tools–>Docstrings–>Docstrings format选择对应的工程,如果有多个工程的话将 Docstrings format 的值从 Plain 换成 reStructuredText

灰光模块,彩光模块-介绍

1. 引用 知识分享系列一:5G基础知识-CSDN博客 5G前传的最新进展-CSDN博客 灰光和彩光_通信行业5G招标系列点评之二:一文读懂5G前传-光纤、灰光、彩光、CWDM、LWDM、MWDM...-CSDN博客 ADOP带你了解:CWDM、DWDM、MWDM、LWDM:快速…

【漏洞复现】用友 NC runStateServlet proInsPk参数 Sql注入漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

Linux进程间通信——人工实现管道,深度学习管道接口、特性、情况

前言:本节内容仍是管道, 上节内容我们学习了管道的原理。 这节内容将在原理的基础上, 讲解管道的编程, 特性,应用等等。 下面开始我们的学习吧。 ps:本节内容需要了解一些管道的原理, 希望友友们…

Java工具插件

一、springboot集成mqtt订阅 阿里云MQTT使用教程_复杂的世界311的博客-CSDN博客_阿里云mqtt 阿里云创建MQTT服务 先找到产品与服务,然后选择物联网平台,找到公共实例,创建一个产品。 创建产品 然后在左侧下拉栏找到设备管理,在设备管理下拉栏找到设备,然后添加设备。添加…

本地部署Llama 3.1大模型

Meta推出的Llama 3.1系列包括80亿、700亿、4050亿参数版本,上下文长度扩展至12.8万tokens,并增加了对八种语言的支持。 部署模型需要用到Ollama的一个工具,访问官方网站https://ollama.com 点击下载,选择下载你对应的操作系统下…

计算机网络 --- 【2】计算机网络的组成、功能

目录 一、计算机网络的组成 1.1 从组成部分看 1.2 从工作方式看 1.3 从逻辑功能看 1.4 总结 二、计算机网络的功能 2.1 数据通信 2.2 资源共享​编辑 2.3 分布式处理 2.4 提高可靠性 2.5 负载均衡 一、计算机网络的组成 1.1 从组成部分看 我们举例分析计算机网络从…

全国历年高考真题2008-2024

目录 分享链接: ⬇️⬇️⬇️ 点击下载

前端工程化3:使用lerna管理多包

1、 使用lerna管理多包 npm i lerna -g2、使用lerna初始化项目 lerna init初始化结构是这样的: 3、配置项目package.json文件 "scripts": {"preinstall": "npx only-allow pnpm","prepare": "husky install"…

IDEA中集成Git及Github

我的博客大纲 我的GIT学习大纲 1、IDEA中集成Git 1.1.设置IDEA忽略一些文件: a.为什么要忽略一些文件 1.在将项目推送之前,有一些文件是可以忽略的,忽略这些文件与实际功能无关,不参与服务器上部署运行,把他们忽略掉…

投屏开发调试技能-pcm数据转wav格式文件源码实战分享

背景 在学习投屏相关音视频开发时候,经常验证一些声音卡顿问题时候,需要对音频数据可能需要保存到本地,一般可能是pcm格式的数据,但是pcm格式的数据是不可以用音乐播放器直接进行播放,需要专门的工具,而且…

DMA直接存储器存取

DMA直接存储器存取 DMA简介存储器映像DMA框图DMA基本结构DMA硬件请求通道数据宽度与对齐DMA相关库函数DMA_InitType函数 案例DMA转运存储器数据用到的函数接线图示例代码 DMA与ADC多通道的扫描模式配合接线图示例代码 DMA简介 DMA(Direct Memory Access&#xff09…