正版资源C# 与 .NET 设计模式视频教程
课程定位:从直觉编码到工程化思维的转型 许多 C# 开发者能够完成功能开发,但在面对业务逻辑膨胀、模块耦合严重或难以进行单元测试的代码库时,往往缺乏系统性的重构方法论。这门课程不追求设计模式的数量堆砌,而是着重建立架构思维。前半部分深入解析 SOLID 原则,这是所有设计模式的理论基础;后半部分通过
课程定位:从直觉编码到工程化思维的转型
许多 C# 开发者能够完成功能开发,但在面对业务逻辑膨胀、模块耦合严重或难以进行单元测试的代码库时,往往缺乏系统性的重构方法论。这门课程不追求设计模式的数量堆砌,而是着重建立架构思维。前半部分深入解析 SOLID 原则,这是所有设计模式的理论基础;后半部分通过 Builder 模式讲解复杂对象的构建技巧。它解决的核心痛点是:如何写出高内聚、低耦合且易于扩展的代码,以及如何在代码复杂度上升时保持系统的可维护性。
学习门槛与推荐路径
本课程适合具备 C# 基础语法能力、有实际项目经验但感到设计困惑的中级开发者。若尚未深入理解接口、多态或继承机制,建议先补充相关基础知识再开始学习。推荐的学习顺序如下:首先完整观看 SOLID 原则系列,重点理解单一职责和依赖倒置在实际类设计中的体现,这一步决定了后续模式应用的合理性;其次,在理解原则后,进入 Builder 模式章节,通过对比“未使用模式”与“使用模式”的代码差异,直观感受抽象带来的收益;最后,利用 quizzes 进行阶段性自测,确认是否真正理解了原则间的权衡关系,而不仅仅是记住了模式名称。
学完产出与资料配合使用
完成本课程后,你能够独立识别现有代码中的设计缺陷,并运用 SOLID 原则进行合理的重构;同时,能够根据业务场景选择合适的设计模式(如 Builder)来构建复杂对象,显著提升代码的可读性和可测试性。资料包中的 C# 源码文件并非简单的复制粘贴,而是视频讲解的实体化呈现。建议在观看视频时,同步打开对应源码,尝试先关闭答案自行编写逻辑,再对照参考实现分析差异;对于 Quiz 测试题,务必独立完成后再查看答案,以此检验对设计原则的深层理解,确保知识转化为实际工程能力。
课程目录
课程目录69 条
- 00 None
- 01 The SOLID Design Principles
- attached_files
- 003 Single Responsibility Principle
- SOLID.SRP.cs.txt
- 004 Open-Closed Principle
- SOLID.OCP.cs.txt
- 005 Liskov Substitution Principle
- SOLID.LSP.cs.txt
- 006 Interface Segregation Principle
- SOLID.ISP.cs.txt
- 007 Dependency Inversion Principle
- SOLID.DIP.cs.txt
- 02 Builder
- 011 Builder
- Creational.Builder.Builder.cs.txt
- 013 Faceted Builder
- Creational.Builder.BuilderFacets.cs.txt
- quizzes
- 001 Builder Coding Exercise.html
- 03 Factories
- 016 Point Example
- Creational.Factories.Factory.cs.txt
- 020 Abstract Factory
- Creational.Factories.AbstractFactory.cs.txt
- 002 Factory Coding Exercise.html
- 04 Prototype
- 024 ICloneable is Bad
- Creational.Prototype.ICloneableIsBad.cs.txt
- 025 Copy Constructors
- Creational.Prototype.CopyConstructors.cs.txt
- 027 Copy Through Serialization
- Creational.Prototype.CopyThroughSerialization.cs.txt
- 003 Prototype Coding Exercise.html
- 05 Singleton
- 030 Singleton Implementation
- Creational.Singleton.Singleton.cs.txt
- 032 Singleton in Dependency Injection
- Creational.Singleton.SingletonInDI.cs.txt
- 033 Monostate
- Creational.Singleton.Monostate.cs.txt
- 004 Singleton Coding Exercise.html
- 06 Adapter
- 036 VectorRaster Demo
- Structural.Adapter.NoCaching.cs.txt
- 037 Adapter Caching
- Structural.Adapter.WithCaching.cs.txt
- 005 Adapter Coding Exercise.html
- 07 Bridge
- 0OO_Softarchive - Download-More-Here.url
- 0OO_Software.For_Mac0S.txt
- 0OO_Windows.Office-AD0BE-Visual_Studio 2017.txt
- 040 Bridge
- Structural.Bridge.Bridge.cs.txt
- 006 Bridge Coding Exercise.html
- 08 Composite
- 043 Geometric Shapes
- Structural.Composite.GeometricShapes.cs.txt
- 044 Neural Networks
- Structural.Composite.NeuralNetworks.cs.txt
- 007 Composite Coding Exercise.html
- 09 Decorator
- 047 Custom String Builder
- Structural.Decorator.CodeBuilder.cs.txt
- 048 Adapter-Decorator
- Structural.Decorator.AdapterDecorator.cs.txt
- 049 Multiple Inheritance
- Structural.Decorator.MultipleInheritance.cs.txt
- 050 Dynamic Decorator Composition
- Structural.Decorator.Decorator.cs.txt
- 008 Decorator Coding Exercise.html
- 10 Façade
- 11 Flyweight
- 057 Repeating User Names
- Structural.Flyweight.Users.cs.txt
- 058 Text Formatting
- Structural.Flyweight.TextFormatting.cs.txt
- 009 Flyweight Coding Exercise.html
- 12 Proxy - Snorgared - SAnet.cd
- 061 Protection Proxy
- Structural.Proxy.ProtectionProxy.cs.txt
- 062 Property Proxy
- PropertyProxy.cs.txt
- 063 Dynamic Proxy for Logging
- Structural.Proxy.DynamicProxy.cs.txt
- 010 Proxy Coding Exercise.html
- 13 Chain of Responsibility - Snorgared - SAnet.cd
- 068 Method Chain
- Behavioral.ChainOfResponsibility.MethodChain.cs.txt
- 069 Broker Chain
- Behavioral.ChainOfResponsibility.BrokerChain.cs.txt
- 011 Chain of Responsibility Coding Exercise.html
- 14 Command
- 072 Command
- Behavioral.Command.Command.cs.txt
- 012 Command Coding Exercise.html
- 15 Interpreter
- 076 Handmade Interpreter Lexing
- Behavioral.Interpreter.Handmade.cs.txt
- 013 Interpreter Coding Exercise.html
- 16 Iterator
- 081 Iterator Object
- Behavioral.Iterator.TreeTraversal.cs.txt
- 084 Array-Backed Properties
- ArrayBackedProperties.cs.txt
- 014 Iterator Coding Exercise.html
- 17 Mediator
- 087 Chat Room
- Behavioral.Mediator.ChatRoom.cs.txt
- 088 Event Broker
- RxEventBroker.cs.txt
- 015 Mediator Coding Exercise.html
- 18 Memento
- 091 Memento
- Behavioral.Memento.Memento.cs.txt
- 092 Undo and Redo
- Behavioral.Memento.UndoRedo.cs.txt
- 19 Null Object
- 096 Null Object
- Behavioral.NullObject.NullObject.cs.txt
- 20 Observer
- 100 Observer via the event Keyword
- Behavioral.Observer.Events.cs.txt
- 101 Weak Event Pattern
- Behavioral.Observer.WeakEventPattern.cs.txt
- 102 Observable Properties and Sequences
- ObserverPattern.cs.txt
- 21 State
- 105 Handmade State Machine
- Behavioral.State.Handmade.cs.txt
- 106 State Machine with Stateless
- Behavioral.State.Stateless.cs.txt
- 22 Strategy
- 109 Dynamic Strategy
- Behavioral.Strategy.Dynamic.cs.txt
- 110 Static Strategy
- Behavioral.Strategy.Static.cs.txt
- 23 Template Method
- 113 Template Method
- Behavioral.TemplateMethod.TemplateMethod.cs.txt
- 24 Visitor
- 116 Intrusive Expression Printing
- Behavioral.Visitor.Intrusive.cs.txt
- 117 Reflection-Based Printing
- Behavioral.Visitor.Reflective.cs.txt
- 118 Classic Visitor Double Dispatch
- Behavioral.Visitor.Classic.cs.txt
- 119 Dynamic Visitor via the DLR
- Behavioral.Visitor.Dynamic.cs.txt
- 25 Course Summary




