C++设计模式

文章目录

  • 工厂模式
    • 工厂方法模式
    • 抽象工厂模式
  • 单例模式
  • 观察者模式

工厂模式

C++中的工厂模式是一种创建型设计模式,用于创建对象而不需要暴露对象的创建逻辑。工厂模式将对象的创建过程封装在一个工厂类中,客户端只需要通过工厂类来创建对象,而不需要直接调用对象的构造函数。工厂模式可以提高代码的可维护性和可扩展性,因为它将对象的创建过程与客户端代码分离开来,使得客户端代码更加简洁和易于维护。

工厂方法模式

工厂方法模式是工厂模式的一种更加灵活和可扩展的实现方式,它使用一个抽象工厂类来定义对象的创建接口,然后由具体的工厂类来实现对象的创建。工厂方法模式可以根据需要添加新的工厂类来支持新的对象类型,而不需要修改抽象工厂类的代码。
场景:无法预知对象确切类别及其依赖关系时

抽象工厂模式

提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。它允许客户端使用一个共同的接口来创建一组相关的对象,而不需要知道它们的具体实现。

单例模式

用于确保一个类只有一个实例,并提供全局访问点。单例模式可以避免多个实例之间的冲突和资源浪费,同时也可以提高代码的可维护性和可扩展性。
静态局部变量来创建单例对象,可以使用工厂模式来创建单例对象,并将单例对象保存在工厂类中,以确保在任何时候都只有一个实例

class Config {
public:static Config& getInstance() {static Config instance;return instance;}
private:Config() {}Config(const Config&) = delete;Config& operator=(const Config&) = delete;
};class ConfigFactory {
public:static Conf

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

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

相关文章

【C++高并发服务器WebServer】-12:TCP详解及实现

本文目录 一、TCP通信流程二、套接字函数2.1 socket()2.2 bind()2.3 listen()2.4 accept()2.5 connect() 三、demo实现3.1 server端代码3.2 client端代码 四、TCP三次握手五、TCP滑动窗口六、TCP四次挥手七、多进程并发服务器 一、TCP通信流程 先来讲讲服务器端,是…

【Maven】项目管理工具-Maven

目录 1. Maven简介 1.1 项目管理 1.2 项目构建 1.3 项目构建工具 1.4 Maven的四大特征 1.4.1 依赖管理系统 1.4.2 多模块构建 1.4.3 一致的项目结构 1.4.4 一致的构建模型和插件机制 1.5 Maven模型 ​编辑 2.maven的安装配置 2.1 Maven的安装配置 2.1.1检测jdk的版…

dijkstra算法类型题解

dijkstra算法(有权图,无权图): 带权路径长度——当图是带权图时,一条路径上所有边的权值之和,称为该路径的带权路径长度 初始化三个数组,final标记各顶点是否已找到最短路径,dist最…

RabbitMQ 消息顺序性保证

方式一:Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费,并将exclusive设置为true时,第二个消费者会抛出异常: com.rabbitmq.client.AlreadyClosedEx…

基于开源AI智能名片2+1链动模式S2B2C商城小程序的个人IP活动运营策略与影响力提升研究

摘要:本文围绕个人IP运营者借助活动运营提升影响力这一主题,深入探讨如何将开源AI智能名片21链动模式S2B2C商城小程序融入借势、造势、提升参与感及用户激励等活动运营环节。通过分析该创新模式与活动运营各要素的结合点,为个人IP运营者提供切…

计算机图形学论文 | 面向制造的设计: 五轴铣削的几何制造可行性评估

🍕🍕🍕宝子们好久不见,新年快乐~~~,今天我们来更新一篇关于五轴CNC制造中的模型制造可达性分析的论文。老规矩: 红色是名词,蓝色是结论,绿色是文章工作,黄色是一些其他重…

deepseek搭建本地知识库

ollama是一个大模型的运行框架,在上面可以运行不同的大模型 部署deepseek 下载ollama:https://ollama.com/ 下载模型:https://ollama.com/library/deepseek-r1:1.5b ollama run deepseek-r1:1.5b运行起来之后,本地命令行就可以…

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要

青少年编程与数学 02-009 Django 5 Web 编程 01课题、概要 一、Django 5Django 5 的主要特性包括: 二、MVT模式三、官方网站四、内置功能数据库 ORM(对象关系映射)用户认证和授权表单处理模板引擎URL 路由缓存框架国际化和本地化安全性功能管…

deepseek本地部署-linux

1、官网推荐安装方法(使用脚本,我绕不过github,未采用) 登录ollama下载网站https://ollama.com/download/linux,linux下有下载脚本。 正常来说,在OS系统下直接执行脚本即可。 2、手动安装方法 2.1获取ollama-linux-arm64.tgz wget https://ollama.com/download/ollam…

多光谱技术在华为手机上的应用发展历史

2018 年,华为 P20 系列首次搭载 5 通道色温传感器,可帮助手机在不同光照条件下保持画面色彩一致性。 2020 年,华为 P40 系列搭载 8 通道多光谱色温传感器(实际为 11 通道,当时只用 8 个通道检测可见光)&am…

增加工作台菜单页面,AI问答应用支持上下文设置,数据库表索引优化,zyplayer-doc 2.4.8 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,支持以内…

4.python+flask+SQLAlchemy+达梦数据库

前提 1.liunx Centos7上通过docker部署了达梦数据库。从达梦官网下载的docker镜像。(可以参考前面的博文) 2.windows上通过下载x86,win64位的达梦数据库,只安装客户端,不安装服务端。从达梦官网下载达梦数据库windows版。(可以参考前面的博文) 这样就可以用windows的达…

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点: 1、网站协议-http/https安全差异(抓包) 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP:使用明文传输,数据在传输过程中可以被…

【零基础学Mysql】常用函数讲解,提升数据操作效率的利器

以耳倾听世间繁华,以语表达心中所想 大家好,我是whisperrrr. 前言: 大家好,我是你们的朋友whisrrr。在日常工作中,MySQL作为一款广泛使用的开源关系型数据库,其强大的功能为我们提供了便捷的数据存储和管理手段。而在…

C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输

CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…

win编译openssl

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…

idea启动报错# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffccf76e433

# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc0x00007ffccf76e433, pid17288, tid6696 # # JRE version: (11.0.248) (build ) # Java VM: OpenJDK 64-Bit Server VM (11.0.248-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) 不知道为什么…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>不同路径 III

目录 整体思路:代码设计:代码呈现: 整体思路: 代码设计: 代码呈现: class Solution {int ret,step;int m,n;boolean[][] vis;public int uniquePathsIII(int[][] grid) {m grid.length;n grid[0].length…

Idea 2024.3 使用CodeGPT插件整合Deepseek

哈喽,大家好,我是浮云,最近国产大模型Deepseek异常火爆,作为程序员我也试着玩了一下,首先作为简单的使用,大家进入官网,点击开始对话即可进行简单的聊天使用,点击获取手机app即可安装…

Houdini subuv制作输出阵列图

在游戏开发中经常需要用到sheet阵列图,并用其制作翻页动画。通过Houdini强大的节点组合可以配合输出subuv阵列图供游戏引擎使用。 本文出处:https://zhuanlan.zhihu.com/p/391796978 博主参考学习并写该文。 1.在obj分类下创建font节点以进行测试&#…