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

C++ 常用的设计模式

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

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

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

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

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

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

6:装饰器模式:

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

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

,就像遍历。

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

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

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

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

对象代理控制?代理模式

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


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

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

相关文章:

  • 【设计模式】01- 一文理解常用设计模式-“创建型模式”篇
  • 在ArcGIS JS API中使用WebGL实现波纹扩散特效
  • 我用AI做数据分析之四种堆叠聚合模型的比较
  • 《LSTM与HMM:序列建模领域的双雄对决》
  • Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用
  • 只需三步!5分钟本地部署deep seek——MAC环境
  • 网络工程师 (31)VLAN
  • 浏览器网络请求全流程深度解析
  • React历代主要更新
  • 【数据结构】(8) 二叉树
  • navicat导出表结构到Excel 带字段备注
  • 使用pocketpal-ai在手机上搭建本地AI聊天环境
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<10>
  • FPGA简介|结构、组成和应用
  • [c语言日寄]在不完全递增序中查找特定要素
  • Golang的多团队协作编程模式与实践经验
  • cv2.Sobel
  • Windows软件自动化利器:pywinauto python
  • 关于 IoT DC3 中驱动(Driver)的理解
  • LogicFlow自定义节点:矩形、HTML(vue3)
  • 多模态本地部署ConVideoX-5B模型文生视频
  • html 点击弹出视频弹窗
  • 业务干挂数据库,Oracle内存分配不足
  • MongoDB 7 分片副本集升级方案详解(下)
  • Webpack相关优化总结
  • ollama实践笔记
  • springCloud-2021.0.9 之 服务调服务 示例
  • 如何使用DHTMLX Scheduler的拖放功能,在 JS 日程安排日历中创建一组相同的事件
  • QxOrm生成json
  • XS9922B(CHIPUP) 模拟高清 寄存器手册 XS9922B 四通道 多合一模拟高清解码芯片