解决什么痛点 C++ 开发中,许多初学者容易写出高耦合、难维护的“面条代码”,或者面对复杂对象创建场景时束手无策。这门课专门针对这些问题,深入讲解 GoF 设计模式在 C++ 中的具体落地。它不是泛泛而谈理论,而是聚焦于如何通过设计模式重构代码结构,提升系统的可复用性和可扩展性。对于想要摆脱“只会写业务逻辑”阶段的工程师,这是一次从实现者向架构思维转变的关…
C++ 开发中,许多初学者容易写出高耦合、难维护的“面条代码”,或者面对复杂对象创建场景时束手无策。这门课专门针对这些问题,深入讲解 GoF 设计模式在 C++ 中的具体落地。它不是泛泛而谈理论,而是聚焦于如何通过设计模式重构代码结构,提升系统的可复用性和可扩展性。对于想要摆脱“只会写业务逻辑”阶段的工程师,这是一次从实现者向架构思维转变的关键训练。
本课程适合具备一定 C++ 基础、熟悉面向对象编程概念(类、继承、多态),并希望提升代码设计能力的开发者。无论你是后端开发、嵌入式开发还是游戏客户端开发,只要你的工作中涉及 C++ 项目维护或新模块设计,这套内容都能直接复用。特别推荐给那些在面试中被追问设计模式、或在实际项目中因耦合过高而频繁重构的同学。
建议按照以下顺序啃下核心模块:
1.创建型模式:优先掌握工厂模式(含简单工厂、工厂方法、抽象工厂)、建造者模式和原型模式。这是构建复杂对象的基石,资料中有多课时拆解工厂模式的变种。
2.结构型模式:重点看代理模式、外观模式和享元模式。理解它们如何控制访问、简化接口和节省内存。
3.行为型模式:攻克命令模式和中介者模式。这两个模式在解耦请求发起者与接收者方面极为实用。
单件模式(Singleton)虽短,但涉及线程安全等细节,需结合代码反复调试。备忘录模式相对冷门,可作为拓展阅读。
完成全部练习后,你将能够:
- 独立识别代码中的坏味道,并运用合适的设计模式进行重构;
- 设计高内聚、低耦合的系统模块,如日志系统、配置管理器、UI 组件池等;
- 在技术面试中清晰阐述设计模式的适用场景与 C++ 实现细节;
- 具备阅读和理解大型开源 C++ 项目源码的能力。
提供的视频切片按模式细分,切忌倍速 pass。每节课对应一个具体模式的源码讲解,请打开你的 IDE,对照着逐行敲代码,重点观察:
- 类之间的继承与组合关系
- 虚函数表的使用方式
- 内存管理与智能指针的配合
建议做完笔记后,尝试脱离视频,自己从零实现一个简化版的工厂模式或命令模式框架,这才是真正转化的关键。
12416.png (186.13 KB, 下载次数: 0) 2022-1-29 21:25 上传 C++DP_中介者模式_17_1 C++DP_中介者模式_17_2 C++DP_享元模式_13 C++DP_代理模式_14 C++DP_单件模式_7 C++DP_命令模式_9 C++DP_备忘录模式_18 C++DP_外观模式_8 C++DP_工厂原型建造者模式_3.1_工厂模式_1 C++DP_工厂原型建造者模式_3.1_工厂模式_2 C++DP_工厂原型建造者模式_3.1_工厂模式_3 C++DP_工厂原型建造者模式_3.1_工厂模式_4 C++DP_工厂原型建造者模式_3.2_原型模式_1 C++DP_工厂原型建造者模式_3.2_原型模式_2 C++DP_工厂原型建造者模式_3.3_建造者模式_1 C++DP_工厂原型建造者模式_3.3_建造者模式_2 C++DP_工厂原型建造者模式_
12416.png (186.13 KB, 下载次数: 0) 2022-1-29 21:25 上传 C++DP_中介者模式_17_1 C++DP_中介者模式_17_2 C++DP_享元模式_13 C++DP_代理模式_14 C++DP_单件模式_7 C++DP_命令模式_9 C++DP_备忘录模式_18 C++DP_外观模式_8 C++DP_工厂原型建造者模式_3.1_工厂模式_1 C++DP_工厂原型建造者模式_3.1_工厂模式_2 C++DP_工厂原型建造者模式_3.1_工厂模式_3 C++DP_工厂原型建造者模式_3.1_工厂模式_4 C++DP_工厂原型建造者模式_3.2_原型模式_1 C++DP_工厂原型建造者模式_3.2_原型模式_2 C++DP_工厂原型建造者模式_3.3_建造者模式_1 C++DP_工厂原型建造者模式_3.3_建造者模式_2 C++DP_工厂原型建造者模式_3.3_建造者模式_3 C++DP_桥接模式_16 C++DP_模式、思想、开发环境介绍_1.1_设计模式概述 C++DP_模式、思想、开发环境介绍_1.2_讲解规划与编程环境搭建 C++DP_模板方法模式_2_1 C++DP_模板方法模式_2_2 C++DP_状态模式_12_1 C++DP_状态模式_12_2 C++DP_策略模式_4_1 C++DP_策略模式_4_2 C++DP_组合模式_11_1 C++DP_组合模式_11_2 C++DP_职责链模式_19 C++DP_装饰模式_6 C++DP_观察者模式_5 C++DP_解释器模式_21_1 C++DP_解释器模式_21_2 C++DP_设计模式总结_22 C++DP_访问者模式_20_1 C++DP_访问者模式_20_2 C++DP_迭代器模式_10 C++DP_适配器模式_15 C++DP_附赠1_类和对象_10_类定义的相互依赖与类的前向声明 C++DP_附赠1_类和对象_1_静态对象的探讨与全局对象的构造顺序 C++DP_附赠1_类和对象_2_拷贝构造函数和拷贝赋值运算符 C++DP_附赠1_类和对象_3_类的public继承(is-a关系)及代码编写规则 C++DP_附赠1_类和对象_4_类与类之间的组合关系与委托关系 C++DP_附赠1_类和对象_5_类的private继承探讨 C++DP_附赠1_类和对象_6_不能被拷贝构造和拷贝赋值的类对象 C++DP_附赠1_类和对象_7_虚析构函数的内存泄露问题深谈 C++DP_附赠1_类和对象_8_类设计中的一些技巧_1 C++DP_附赠1_类和对象_8_类设计中的一些技巧_2 C++DP_附赠1_类和对象_8_类设计中的一些技巧_3 C++DP_附赠1_类和对象_9_命名空间使用的一些注意事项 C++DP_附赠2_引用计数_1_shared_ptr实现及string存储简单说明 C++DP_附赠2_引用计数_2_copy-on-write方式实现字符串类_1 C++DP_附赠2_引用计数_2_copy-on-write方式实现字符串类_2 C++DP_附赠2_引用计数_2_copy-on-write方式实现字符串类_3 C++设计模式视频课程_共享