从“写代码”到“做设计”的门槛
C++ 是一门对语法细节要求极严、但对架构全局观要求更高的语言。很多开发者陷入困境,并非技术细节不懂,而是面对复杂业务时,缺乏将需求转化为稳健对象结构的能力。这门课的核心价值,正是填补“能写代码”与“能做设计”之间的空白。它不讲空洞的理论,而是从工业实践中提取经验,教你如何用面向对象的思想去审视和重构有缺陷的设计。对于想从执行者转型为设计者、正在构建 C++ 技术深度的读者,这是绕不开的一课。
适合人群与学习重心
本课程最适合有一定 C/C++ 基础、有实际工作经验的程序员。如果你刚入门语法,或者只停留在调用库函数层面,直接学习可能会感到吃力。课程目标明确:理解并熟练运用 23 种设计模式,并能用 C++ 代码准确描述其表现形式。
建议学习顺序如下:
- 先攻克创建型模式:这是对象构建的基石,重点理解单例、工厂等方法如何在工程中控制实例化过程,避免资源浪费和管理混乱。
- 再深入结构型模式:学习类与对象的组合方式,如适配器、装饰器等,提升代码复用与扩展能力,解决接口不兼容的问题。
- 最后研读行为型模式:关注对象间的交互与职责分配,如观察者、策略等,解决复杂的业务逻辑流转和状态变化问题。
每部分都结合具体案例,剖析传统设计的痛点,再展示设计模式如何针对性改进。这种“对比式”学习能帮你快速建立场景直觉,而不是死记硬背模式名称。
学完能做什么 & 资料怎么用
学完后,你应该能够:
- 独立识别设计缺陷:在 code review 或新模块设计中,快速发现违反开闭原则、高耦合等问题,并提出改进方案。
- 熟练运用 23 种模式:不再生搬硬套,而是根据场景选择合适模式,并用现代 C++ 特性(如智能指针、模板)优雅实现,写出既安全又高效的代码。
- 具备架构设计意识:从全局视角规划模块边界与接口,为后续学习更深层次的架构模式打下坚实基础。
资料包中的案例代码是练习核心。请勿直接复制粘贴,建议手写一遍关键模式的实现,并在项目中尝试替换原有粗糙设计。例如,将硬编码的 if-else 逻辑重构为策略模式,或将频繁创建的同一类对象改为单例模式,通过实际改动感受代码质量的提升。只有经过亲手实践,设计模式才能真正内化为你的工程能力。
课程目录
C .jpg (68. 25 KB, ) 2022-10-30 12: 51 上传 课程介绍: 适合人群: 有工作经验想要学习设计模式实战,有一定c或者c++编程基础 课程目标: 1.理解23种设计模式的结构,并能熟练使用C++代码描述设计模式的表现形式。2.从工程开发角度角度深入讲解设计模式的使用场景。3.通过案例讲解建立起使用设计模式完成面向对象的设计概念,为工程应用打下基础。 课程简介: 《C++ 设计模式原理与实战大全-架构师必学课程》 主讲:丁宋涛 C++属于难学易用的工程开发语言,C++繁复的语法往往使得开发人员过于强调细节而缺乏软件体系结构的大局观。特别需要指出的是,缺乏面向对象的软件设计能力是制约从业人员从研发者向设计者转变的重要因素。设计模式是来源于工业实践的重要开发经验,它实际上是面向对象的数据结构,学习设计模式是学习面向对象设计的根本要求。本课程从案例出发,结合工程实践场景,剖析了各类有缺陷的软件设计,针对性的描述了如何采用设计模式改进软件开发,丰富了学员实际开发经验,提升实战能力。 本次案例直接来源工程实践,其工程技术点培训覆盖了应用工程库中的实用技术样例,其知识点储备已经相当于2-3年左右的工程经验(覆盖Stackoverlow中80%)左右的常见技术点,有利于提升较大规模的工业级C、C++软件设计能力 课程目录: 1.课程介绍 2.UML和设计模式导论 02. 创建型设计模式一(10节) 1.简单工厂方法的定义场景与实现针对接口编程 2.简单工厂工程技术对象动态创建配置化开发 3.单例模式的定义场景与实现 4.单例模式的实用工程技术 5.工厂模式的定义场景与实现 6.工厂模式的实用工程技术IOC容器 7.抽象工厂的定义场景与实现 8.抽象工厂的实用工程技术 9.构建者模式Builder的定义场景与实现 10.构建者模式的实用工程技术 03. 创建型设计模式二(2节) 1.原型模式的定义场景与实现 2.原型模式的实用工程技术 04. 结构型设计模式一(10节) 1.适配器模式的定义场景与实用工程技术 2.门面模式Facade的定义场景与实用工程技术 3.享元模式Flyweight的定义场景与实现 4.享元模式Flyweight的实用工程技术 5.代理模式的定义场景与实现 6.代理模式的实用工程技术 7.包装模式的定义场景与实现 8.包装模式的实用工程技术分析MFC 9.组合模式的定义场景与实现部分与整体 10.组合模式的实用工程技术 05. 结构型设计模式二(2节) 1.桥接模式的定义场景与实现 2.桥接模式的实用工程技术 06. 行为型设计模式一(10节) 1.模板方法的定义场景与实现 2.模板方法的实用工程技术 3.策略模式的定义场景与实现 里氏代换原则 4.策略模式的实用工程技术 5.观察者模式的定义场景与实现 6.观察者模式的实用工程技术 7.命令模式的定义场景与实现 8.命令模式的实用工程技术Undo撤销与宏命令 9.责任链模式的定义场景与实现击鼓传花 10.责任链模式的实用工程技术 07. 行为设计模式二(10节) 1.备忘录模式的定义场景与实现 2.备忘录模式的实用工程技术 3.调停者模式的定义场景与实现 4.调停者模式的实用工程技术 5.状态模式的定义场景与实现 6.状态模式的实用工程技术 7.解释器模式的定义场景与实现 8.解释器模式的工程应用 9.访问者模式的定义场景与实现 10.迭代器模式方法与工程应用 08. 行为设计模式三(3节) 1.访问者模式的工程应用 2.迭代器模式方法与工程应用 3.总结-面向对象 OO 的设计原则 09. 设计模式项目实战-MVC图片编辑器项目一(10节) 1.MVC图片编辑器项目介绍和UML知识回顾 2.MVC模式讲解 3.项目功能说明用到的设计模式说明 4.抽象工厂单例 观察者 门面模式和项目类图 5.依赖的QT环境安装 6.配置QT项目和信号槽代码示例 7.创建XImageEdit项目并提升QWidget控件完成 8.手动添加打开文件的信号槽 9.完成Qt打开并显示图片 10.完成XEditView的初始化和载入背景图的实现 10. 设计模式项目实战-MVC图片编辑器项目二(10节) 1.重载鼠标事件完成画笔功能 2.观察者模式代码IObserver和XSubject完成 3.观察者模式XModel和XEditView代码并重构 4.完成控制器 模型 视图的抽象工厂模式创建 5.将模型和视频与用户代码解耦合有门面模式的 6.重构划线到IGraph接口并添加划线的样式 7.重构XPenGraph用模板技术在工厂中注册 8.注册了XErasGraph完成了橡皮檫功能 9.注册了XRectGraph添加了画矩形存在未清图 10.修正了矩形绘制的残影添加XImageGraph 11. 设计模式项目实战-MVC图片编辑器项目三(4节) 1.完成了Undo和Redo代码 2.完成了画笔的粗细设置 3.完成画笔颜色设置 4.项目完成优化界面添加图标和按钮






