这门课解决的是哪类问题

写 C++ 写了一两年之后,很多人会卡在同一个地方:语法都懂,类也会写,但一旦项目里模块变多、需求开始频繁改动,代码就开始互相牵连。改一个绘图逻辑,结果顺手把文件保存、撤销重做都碰坏了。这类问题靠多背几个语法点解决不了,它属于结构设计层面的问题,而设计模式正是前人总结出来的应对套路。

这门课围绕 C++ 展开设计模式,落点放在一个图像编辑器的实现上。你会看到画笔、鼠标事件、视图载入、控制器与模型的拆分、撤销与重做这些具体功能,是怎么被一步步组织起来的。它不只是在讲「什么是工厂模式、什么是观察者模式」,而是把这些模式放进一个有真实交互需求的程序里,让你看到引入模式前后代码组织方式的差别。如果你目前的状态是「能写功能,但写大一点就乱」,这门课对得上你的问题。

适合什么基础,不适合什么人

前提是你能独立写 C++ 类、理解继承与虚函数、知道指针和引用怎么用,最好还接触过一点图形界面或事件驱动的代码。课程里大量模式依赖多态和抽象接口,如果虚函数表、纯虚函数这些概念还模糊,跟起来会吃力,建议先把这块补上再回来。

它不适合两类人:一是完全没写过 C++ 的初学者,直接上设计模式会变成背概念;二是已经有多年架构经验、只想找几个新模式的资深开发者,课程的价值更多在梳理和串联,而不是提供冷门知识。对转行者来说,如果你的目标岗位是 C++ 后端或客户端开发,这门课可以作为从「会写」到「会组织」的过渡材料,但它不负责补语言基础,也不涉及具体行业的业务知识。

建议的看课顺序和练习方式

不必严格按顺序从头看到尾。可以先看模式理论部分,把单例、工厂、观察者、命令这几个高频模式的意图和适用场景弄明白,再进入实战章节。实战里图像编辑器这条线是连贯的,建议按功能推进的顺序看:先看视图初始化和背景载入,理解整体结构怎么搭;再看鼠标事件重载和画笔功能,体会事件与绘制如何解耦;然后看控制器、模型、视图如何用抽象工厂组织起来;最后重点看撤销与重做的实现,这一块最能体现命令模式的价值。

  • 每看完一个模式,先别急着往下走,回到自己的项目或练习代码里找一处「条件分支越写越长」或者「改一处牵动多处」的地方,试着用刚学的模式重构一次。
  • 课程配套的代码建议边看边敲,尤其是接口抽象和对象创建这两步,只看不写很容易产生「我懂了」的错觉。
  • 撤销重做这类功能,可以自己先想一版实现,再对照课程里的做法,比较差异在哪里,这比直接抄一遍收获大得多。

学完之后,你应该能独立完成这些事:为一个中小型 C++ 项目划分出合理的模块边界,用抽象接口隔离变化点;在需要动态创建对象、需要通知多个模块、需要支持操作回退的场景里,判断该用哪种模式而不是硬写分支;读懂别人项目里常见的模式写法。这些能力不会立刻体现在简历上,但会实实在在反映在你后续写代码的顺畅程度里。

课程目录

📁 C++设计模式理论与实战大全-架构师必学视频课程 11重载鼠标事件完成画笔功能-01.zip
 [665.3 KB] 14完成控制器、模型、视图的抽象工厂模式创建XImageEdit-01.zip
 [676.3 KB] 21完成了Undo和Redo代码XImageEdit-01.zip
 [684.9 KB] 10完成XEditView的初始化和载入背景图的实现和调用-01.zip
 [665.7 KB] 12观察者模式代码IObserver和XSubject完成XImageEdit-01.zip
 [1.3 MB] 15将模型和视频与用户代码解耦合有门面模式的控制器来做XImageEdit-01.zip
 [677.3 KB] 19注册了XRectGraph添加了画矩形存在未清理历史图像问题XImageEdit-01.zip
 [684.9 KB] DesignPatterns课程代码-01.zip
 [631.9 KB] 24完整代码XImageEdit-01.zip
 [1.4 MB] 09完成Qt打开并显示图片XImageEdit-01.zip
 [663.1 KB] 22完成了画笔的粗细设置XImageEdit-01.zip
 [2.0 MB] 16重构划线到IGraph接口并添加划线的样式(颜色、链接、抗锯齿)XImageEdit-01.zip
 [372.6 KB] 设计模式思维导图-01.zip
 [164.2 KB] 20修正了矩形绘制的残影添加XImageGraphXImageEdit-01.zip
 [685.8 KB] 13观察者模式XModel和XEditView代码完成并完成代码重构XImageEdit-01.zip
 [1.3 MB] 2-04、单例模式的实用工程技术——从单例到多例,应用系统缓存的实现原.mp4
 [47.8 MB] 3-04、享元模式Flyweight的实用工程技术:文件夹图标、字符串.mp4
 [20.8 MB] 5-15、将模型和视频与用户代码解耦合有门面模式的控制器来做.mp4
 [42.1 MB] 4-22、面向对象(OO)的设计原则(总结).mp4
 [37.9 MB] 5-17、重构XPenGraph用模板技术在工厂中注册.mp4
 [31.7 MB] 2-08、抽象工厂的实用工程技术——抽象工厂的使用场景.mp4
 [47.1 MB] 5-16、重构划线到IGraph接口并添加划线的样式(颜色、链接、抗锯.mp4
 [60.8 MB] 2-05、工厂模式的定义场景与实现——子类延迟实现父类功能的软件结构.mp4
 [69.7 MB] 1-02、UML和设计模式导论.mp4
 [56.5 MB] 3-07、包装模式的定义、场景与实现——组合大于继承.mp4
 [63.4 MB] 4-08、命令模式的实用工程技术——Undo撤销与宏命令.mp4
 [146.8 MB] 4-21、迭代器模式方法与工程应用:STL迭代器应用与迭代器模式思想.mp4
 [53.8 MB] 2-10、构建者模式的实用工程技术——代码的坏味道:算法与对象构建的隔.mp4
 [99.4 MB] 4-04、策略模式的实用工程技术——支付交易系统帐户转帐、数据信令采集.mp4
 [38.1 MB] 5-20、修正了矩形绘制的残影添加XImageGraph.mp4
 [49.9 MB] 5-22、完成了画笔的粗细设置.mp4
 [36.7 MB] 3-05、代理模式的定义场景与实现:控制对象访问与Cache代理.mp4
 [93.6 MB] 4-18、解释器模式的工程应用——解释器与数据结构、算法和编译原理.mp4
 [15.7 MB] 4-14、调停者模式的实用工程技术——多对多关系交互解耦合.mp4
 [15.9 MB] 5-12、观察者模式代码IObserver和XSubject完成.mp4
 [21.0 MB] 5-13、观察者模式XModel和XEditView代码完成并重构.mp4
 [46.6 MB] 4-16、状态模式的实用工程技术—自动化流水线的状态组合与业务逻辑解耦.mp4
 [15.5 MB] 4-03、策略模式的定义场景与实现:isA还是hasA,里氏代换原.mp4
 [91.3 MB] 3-01、适配器模式的定义、场景与实用工程技术:对象适配与类的适配.mp4
 [60.3 MB] 3-10、组合模式的实用工程技术——树形(递归)结构的面向对象实现.mp4
 [167.2 MB] 5-07、创建XImageEdit项目并提升QWidget控件完成类实.mp4
 [21.3 MB] 5-02、MVC模式讲解(1).mp4
 [10.2 MB] 4-01、模板方法的定义场景与实现:将“动作”封装成对象是理解行为型.mp4
 [53.6 MB] 4-05、观察者模式的定义场景与实现——订阅_发布的软件结构.mp4
 [140.2 MB] 2-03、单例模式的定义场景与实现:懒汉、饿汉与多线程安全double.mp4
 [78.1 MB] 3-12、桥接模式的实用工程技术:桥接模式应用评析、MFC分析.mp4
 [23.4 MB] 4-10、责任链模式的实用工程技术——事件冒泡、过滤器原理与责任链实现.mp4
 [62.8 MB] 5-09、完成Qt打开并显示图片.mp4
 [18.5 MB] 2-02、简单工厂实用工程技术:C++对象动态创建技术与配置化开发.mp4
 [101.6 MB] 5-19、注册了XRectGraph添加了画矩形存在未清理历史图像问题.mp4
 [25.8 MB] 4-17、解释器模式的定义场景与实现——一个简单加减法运算器的实例.mp4
 [59.8 MB] 4-19、访问者模式的定义场景与实现——一个手机配置环境的构建.mp4
 [58.5 MB] 5-23、完成画笔颜色设置.mp4
 [36.7 MB] 2-09、构建者模式Builder的定义、场景与实现.mp4
 [108.5 MB] 2-07、抽象工厂的定义、场景与实现——相互关联关系的对象.mp4
 [67.4 MB] 5-24、项目完成优化界面添加图标和按钮.mp4
 [40.1 MB] 4-09、责任链模式的定义、场景与实现:击鼓传花.mp4
 [40.9 MB] 2-11、原型模式的定义场景与实现——对象的快速复制.mp4
 [72.4 MB] 4-13、调停者模式的定义场景与实现——封装交互与即插即用.mp4
 [94.6 MB] 4-02、模板方法的实用工程技术:好莱坞法则、钩子函数与单元测试工具.mp4
 [42.0 MB] 5-05、依赖的QT环境安装(1).mp4
 [21.7 MB] 1-01、课程介绍.mp4
 [36.5 MB] 5-04、抽象工厂、单例、观察者、门面模式回顾和项目类图分析(1).mp4
 [23.6 MB] 5-08、手动添加打开文件的信号槽.mp4
 [19.8 MB] 4-06、观察者模式的实用工程技术——出版+订阅就是观察者模式.mp4
 [25.8 MB] 3-11、桥接模式的定义、场景与实现:一维扩展用继承,多维扩展用桥接.mp4
 [39.0 MB] 5-18、注册了XErasGraph完成了橡皮檫功能.mp4
 [33.1 MB] 3-08、包装模式的实用工程技术——MFC中CView结构设计.mp4
 [108.6 MB] 4-07、命令模式的定义、场景与实现——封装调用.mp4
 [75.6 MB] 2-06、工厂模式的实用工程技术——IOC容器与工厂模式的应用.mp4
 [75.1 MB] 5-14、完成控制器、模型、视图的抽象工厂模式创建.mp4
 [42.5 MB] 5-21、完成了Undo和Redo代码.mp4
 [31.8 MB] 3-03、享元模式Flyweight的定义场景与实现:运用共享技术.mp4
 [87.1 MB] 4-11、备忘录模式的定义、场景与实现:备忘录与友元函数的应用.mp4
 [86.9 MB] 5-10、完成XEditView的初始化和载入背景图的实现和调用.mp4
 [29.5 MB] 4-15、状态模式的定义场景与实现——从if_else中提取公因式.mp4
 [90.5 MB] 3-06、代理模式的实用工程技术——AOP面向切面编程、智能指针与代理.mp4
 [139.8 MB] 2-12、原型模式的实用工程技术——DRY原则与使用模式进行重构.mp4
 [33.2 MB] 4-20、访问者模式的工程应用——工单派送、电脑组装与银行账户流程的工.mp4
 [34.1 MB] 5-03、项目功能说明用到的设计模式说明(1).mp4
 [14.1 MB] 5-01、MVC图片编辑器项目介绍和UML知识回顾(1).mp4
 [12.5 MB] 5-06、配置QT项目和信号槽代码示例(1).mp4
 [27.5 MB] 4-12、备忘录模式的实用工程技术:Session、数据库快照.mp4
 [19.2 MB] 3-09、组合模式的定义、场景与实现:部分_整体.mp4
 [113.3 MB] 3-02、门面(外观)模式Facade的定义、场景与实用工程技术.mp4
 [57.4 MB] 2-01、简单工厂方法的定义场景与实现-针对接口编程的设计思想剖析.mp4
 [78.9 MB] 5-11、重载鼠标事件完成画笔功能.mp4
 [29.5 MB] 适合人群 C++开发者 架构师 软件工程师 学习收获 掌握C++设计模式 提升项目架构设计 增强系统可维护性 祝您学习愉快! 学有所成,前程似锦!