C++ 常用的设计模式

server/2025/2/13 21:53:00/

1:单例模式:首先能想到的,最为重要的一个设计模式。确保一个类仅有一个实例,提供一个

全局访问点,惯用做法是屏蔽构造数访问(设为private),通过static  权限达到间接访问调用的目的。

2:工厂模式:创建对象的方法,简化对象生成,使用者只需调用就行了,屏蔽了创建底层细节

3:观察者模式,通常的场景类似于安插一个眼线,一旦目标有变,随时都能掌握,通常应用于回调和事件监听

4:策略模式,为简单好记,可以为是一种switch()...的多个分支,每一个分支就是一种解决问题的策略。

5:适配器模式:就像充电器,怎么给手充电?一个是家用电220V ,一个手机用电,这就需要适配器来进行,即实现接口转换

6:装饰器模式:

原来对象没有这个功能,现有类的功能冗繁,再在这个cpp里添加,维护起来十分麻烦,为不改变现有类的框架,对它进行扩展功能,就叫装饰。

7:迭代器模式:顺序访问聚合对象中的各个元素,而不需要暴露内部细节,就要用到迭代器模式

,就像遍历。

8:代理模式:A对象不能直接访问B对象,怎么办?此时就需要代理上场!

9:命令模式:将一个请求或操作封装到一个对象,适用于需要记录、回放或撤销操作的情况

为辅助理解,可以这样记:

对于单个类:
  工厂模式 :对象创建简化   
 单例模式-唯一性,全局性  
  功能扩展?:装饰模式  
  命令干活:命令模式

对象代理控制?代理模式

对象表现如何?观察者模式


多个对象解决问题:
  - 策略模式:功能切换
   - 适配器模式 :对象转换
   -对象遍历:迭代器模式
  最后还有一些设计模式,比如 享元模式(分离对象共享与独特部分),桥接模式(抽象与实现分离)等等。
   


http://www.ppmy.cn/server/167432.html

相关文章

IntelliJ IDEA Console控制台输出成json的配置方式

【IntelliJ IDEA Console控制台输出成json的配置方式】 1.帮助->查找操作 2.搜索注册表 3.ctrlf 搜索pty 控制台右键 结果

问题:通过策略模式+工厂模式+模板方法模式实现ifelse优化

项目场景: 提示:这里简述项目相关背景: 示例:商城系统有会员系统,不同会员有不同优惠程度,普通会员不优惠;黄金会员打8折;白金会员优惠50元,再打7折; 问题描…

python连点器

要实现一个用于抖音点赞的鼠标连点工具,可以通过编程或现有软件实现。以下是两种常见方法(但请注意:频繁自动化操作可能违反平台规则,需谨慎使用): 方法 1:使用现成工具(如 AutoClic…

本地部署DeepSeek Nodejs版

目录 1.下载 Ollama 2.下载DeepSeek模型 3.下载 ollama.js 1.下载 Ollama https://ollama.com/ 下载之后点击安装,等待安装成功后,打开cmd窗口,输入以下指令: ollama -v 如果显示了版本号,则代表已经下载成功了。…

mars3d接入到uniapp的时候ios上所有地图的瓦片都无法加载解决方案

用的是【Mars3d】官网的uniapp的仓库,安卓没有问题,但是ios的不行 相关链接 mars3d-uni-app: uni-app技术栈下的Mars3D项目模板 解决方案:感觉所有图片请求全被拦截了 uniapp的ios内核不允许跨域,需要先把瓦片下载后转base64&…

深度学习入门:搭建你的第一个神经网络

在当今数字化时代,深度学习正以前所未有的速度改变着我们的生活。从语音助手到自动驾驶汽车,从图像识别到自然语言处理,深度学习的应用无处不在。而Python作为一门简洁而强大的编程语言,成为了深度学习领域最受欢迎的工具之一。今天,我们将一起踏上深度学习的旅程,搭建你…

日常吐槽。

一、写在前面 stereopy日常出bug(github issue里得有一半的问题是我提的,当然也有可能是因为我菜),stereopy自己生成的anndata自己不能计算空间共现关系,还是靠squidpy才能计算。另外还要一些函数一开并行计算就报错,这里留一些s…

【DeepSeek】从文本摘要到对话生成:DeepSeek 在 NLP 任务中的实战指南

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…