这门课在解决什么问题

这门课面向的是已经写过几段代码、知道"类、方法、变量"这些词,但面对"这段代码怎么改得更合适"时手足无措的自学者。它的目标不是让你记住几十种模式的完整代码,而是让你看到:当程序变得复杂时,不同问题适合用哪些思路来组织代码,这些思路之间是什么关系。具体来说,它从依赖倒转原则讲起,带你逐个认识单例、工厂、建造者、原型这些高频模式,理解每种模式解决什么场景、什么时候该用、什么时候不该用。

适合什么基础

建议先有"类、对象、方法、继承"这些面向对象的基本概念,最好写过 200 行以上的 Java 或 C# 代码,知道怎么在 IDE 里跑一段程序。如果你连"接口和抽象类有什么区别"都说不清楚,可以先花半天把面向对象的基础补一补,再来看这门课。这门课的节奏偏慢,不会因为你基础薄弱就跳过重要概念。

建议先看哪几块

  • 第一块:概述 + 依赖倒转原则。这是整门课的地基,先理解"为什么要有设计模式",再看依赖倒转原则,它告诉你为什么接口要抽象出来、为什么到处 new 单例是错的。
  • 第二块:单例 + 懒汉/饿汉 + 任务队列。单例模式是入门最容易上手的,但懒汉模式涉及线程安全,需要跟着视频一步步理解双重检查锁和原子变量两种改法,最后写一个多线程任务队列,把前面几讲串起来。
  • 第三块:工厂系列(简单工厂 → 工厂 → 抽象工厂)+ 建造者模式 + 原型模式。这三块是代码量最大、结构最复杂的,建议跟着看 UML 类图和代码实现两部分,先看懂结构,再自己敲一遍。简单工厂和工厂模式可以一带而过,重点看抽象工厂和建造者,它们的思路差别很大,容易混淆。

学完能独立做什么

学完这门课,你应该能在实际项目中判断"这个功能适合用哪种模式来组织",而不是每次都把逻辑塞进一个大 if-else 或者一个上帝类里。比如写一个图形编辑器,能想到用工厂模式区分不同图形对象、用建造者模式组合复杂对象、用原型模式批量复制;写一个日志系统,能想到用单例保证全局只有一个日志对象、用任务队列把

课程目录

1-10_10设计模式的依赖倒转原则.mp4 125.67M
1-11_11单例模式和任务队列.mp4 79.33M
1-12_12如何创建一个单例模式的类.mp4 65.54M
1-13_13懒汉模式和饿汉模式.mp4 43.75M
1-14_14懒汉模式-使用双重检查锁定解决线程安全问题.mp4 49.39M
1-15_15懒汉模式-使用原子变量解决双重检查锁定的问题.mp4 84.28M
1-16_16懒汉模式-使用局部静态对象解决线程安全问题.mp4 41.43M
1-17_17写一个多线程模式下的任务队列.mp4 122.58M
1-18_18单例模式的UML类图.mp4 13.11M
1-19_19简单工厂模式.mp4 63.72M
1-1_1设计模式概述.mp4 67.20M
1-20_20简单工厂模式的UML类图.mp4 21.56M
1-21_21简单工厂模式的实现.mp4 72.72M
1-22_22工厂模式.mp4 43.20M
1-23_23工厂模式代码实现.mp4 41.96M
1-24_24抽象工厂模式.mp4 36.07M
1-25_25抽象工厂模式UML类图.mp4 39.87M
1-26_26抽象工厂模式代码实现-上.mp4 55.03M
1-27_27抽象工厂模式代码实现-下.mp4 46.98M
1-28_28建造者(生成器)模式.mp4 75.77M
1-29_29建造者模式代码实现-上.mp4 40.86M
1-2_2什么是面向对象.mp4 82.47M
1-30_30建造者模式代码实现-中.mp4 65.52M
1-31_31建造者模式代码实现-下.mp4 92.77M
1-32_32建造者(生成器)模式总结.mp4 37.04M
1-33_33原型模式.mp4 61.14M
1-34_34原型模式代码实现.mp4 54.90M
1-35_35适配器模式.mp4 34.67M
1-36_36适配器模式剖析和UML类图.mp4 64.61M
1-37_37适配器模式代码实现-上.mp4 73.63M
1-38_38适配器模式代码实现-下.mp4 65.10M
1-39_39桥接模式.mp4 41.81M
1-3_3封装-继承-多态详解.mp4 193.23M
1-40_40桥接模式UML类图.mp4 59.64M
1-41_41桥接模式代码实现-上.mp4 67.04M
1-42_42桥接模式代码实现-下.mp4 116.68M
1-43_43组合模式和UML类图.mp4 108.05M
1-44_44组合模式代码实现-上.mp4 79.87M
1-45_45组合模式代码实现-下.mp4 116.53M
1-46_46装饰模式.mp4 65.82M
1-47_47装饰模式UML类图.mp4 26.54M
1-48_48装饰模式代码实现.mp4 98.88M
1-49_49外观模式和UML类图.mp4 63.86M
1-4_4UML类图的画法.mp4 45.77M
1-50_50外观模式代码实现.mp4 60.96M
1-51_51享元模式.mp4 107.43M
1-52_52享元模式UML类图.mp4 42.11M
1-53_53享元模式代码实现-上.mp4 104.29M
1-54_54享元模式代码实现-下.mp4 86.33M
1-55_55代理模式和UML类图.mp4 62.43M
1-56_56代理模式代码实现.mp4 54.60M
1-57_57责任链模式和UML类图.mp4 67.88M
1-58_58责任链模式代码实现.mp4 128.20M
1-59_59命令模式.mp4 39.72M
1-5_5继承关系和关联关系.mp4 44.08M
1-60_60命令模式的UML类图.mp4 70.11M
1-61_61命令模式代码实现-上.mp4 107.61M
1-62_62命令模式代码实现-下.mp4 79.60M
1-63_63迭代器模式和UML类图.mp4 110.11M
1-64_64迭代器模式-双向链表代码实现.mp4 107.41M
1-65_65迭代器模式代码实现.mp4 104.75M
1-66_66中介者模式.mp4 72.94M
1-67_67中介者模式UML类图.mp4 35.95M
1-68_68中介者模式代码实现-上.mp4 66.94M
1-69_69中介者模式代码实现-下.mp4 142.67M
1-6_6聚合关系组合关系和有来关系.mp4 66.57M
1-70_70备忘录模式.mp4 83.80M
1-71_71备忘录模式UML类图.mp4 31.09M
1-72_72备忘录模式代码实现.mp4 90.34M
1-73_73观察者模式和UML类图.mp4 59.18M
1-74_74观察者模式-发布者代码实现.mp4 75.49M
1-75_75观察者模式-订阅者代码实现和测试.mp4 98.41M
1-76_76策略模式和UML类图.mp4 43.37M
1-77_77策略模式代码实现.mp4 72.05M
1-78_78状态模式和UML类图.mp4 52.64M
1-79_79状态模式代码实现-上.mp4 56.33M
1-7_7UML中类之间的关系总结.mp4 24.70M
1-80_80状态模式代码实现-下.mp4 56.35M
1-81_81模板方法模式和UML类图.mp4 57.27M
1-82_82模板方法模式代码实现.mp4 92.90M
1-83_83访问者模式.mp4 45.58M
1-84_84访问者模式UML类图.mp4 53.83M
1-85_85访问者模式代码实现-上.mp4 71.29M
1-86_86访问者模式代码实现-中.mp4 72.87M
1-87_87访问者模式代码实现-下.mp4 65.08M
1-8_8设计模式的单一原则.mp4 37.72M
1-9_9设计模式的开放封闭原则.mp4 65.93M
爱编程的大丙-设计模式 - 【C++ 版】