getfromcode

C# 与 .NET 设计模式视频教程(共124讲)

测试运维
课程简介

这门课解决什么核心问题 很多 C# 开发者在写代码时,容易陷入“能跑就行”的实用主义陷阱。初期项目结构简单,临时方案可以快速交付;但随着业务迭代,代码耦合度急剧上升,修改一个逻辑往往牵一发而动全身,维护成本呈指数级增长。这门课程的核心价值,在于系统性地解决“如何写出可维护、可扩展、低耦合的代码”这一工程难题。 设计模式不是炫技,而是经过无数前辈验证的最佳实…

已有 20 人浏览 发布 2025-12-20 更新 2026-10-08

这门课解决什么核心问题

很多 C# 开发者在写代码时,容易陷入“能跑就行”的实用主义陷阱。初期项目结构简单,临时方案可以快速交付;但随着业务迭代,代码耦合度急剧上升,修改一个逻辑往往牵一发而动全身,维护成本呈指数级增长。这门课程的核心价值,在于系统性地解决“如何写出可维护、可扩展、低耦合的代码”这一工程难题。

设计模式不是炫技,而是经过无数前辈验证的最佳实践。课程通过 124 讲的深度拆解,将 GoF(Gang of Four)经典理论与 .NET 实际应用场景结合,帮助开发者从“会写 C# 语法”进阶到“懂得如何设计系统”。它填补了基础语法教程与高级架构设计之间的空白,让你在面对复杂业务需求时,不再依赖直觉堆砌代码,而是有章法地选择合适的设计策略。

适合什么基础以及如何高效学习

本课程适合已经掌握 C# 基础语法、熟悉 .NET Core 或 .NET 5+ 基本开发流程的中级开发者。如果你刚学完语法,建议先补强 OOP 特性理解;如果你是资深开发者但缺乏系统设计意识,这门课是极佳的结构化梳理机会。建议学习路径:先攻克创建型模式(如工厂方法、单例、建造者),理解对象创建的封装艺术;再深入结构型模式(如适配器、装饰器、代理),掌握类与对象的组合技巧;最后挑战行为型模式(如策略、观察者、责任链),优化对象间的通信机制。切忌贪多求快,每个模式务必配合源码对照理解。

学完能做什么及资料如何配合练习

完成课程后,你将具备独立重构遗留代码、设计松耦合模块的能力。具体而言,你能熟练运用依赖注入容器管理组件生命周期,通过策略模式替换冗长的条件分支,利用观察者模式实现事件驱动架构,从而显著提升代码的可测试性与可复用性。这些能力直接对应企业级后端开发中的核心诉求。

资料包中提供的源码案例是本课程的关键资产。建议边看视频边动手复刻代码,重点观察模式在真实项目中的落地形态,而非仅停留在概念记忆。尝试将案例中的模式迁移到自己的小型项目中,例如用命令模式实现 undo/redo 功能,或用中介者模式解耦多个窗体交互。通过“理论输入—源码对照—实践输出”的闭环,才能真正内化设计思维,避免“看懂了但不会用”的困境。

相关推荐

课程目录

─00 None
│ 001 Introduction.mp4
│
├─01 The SOLID Design Principles
│ │ 002 Overview.mp4
│ │ 003 Single Responsibility Principle.mp4
│ │ 004 Open-Closed Principle.mp4
│ │ 005 Liskov Substitution Principle.mp4
│ │ 006 Interface Segregation Principle.mp4
│ │ 007 Dependency Inversion Principle.mp4
│ │ 008 Summary.mp4
│ │
│ └─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
│ │ 009 Overview.mp4
│ │ 010 Life Without Builder.mp4
│ │ 011 Builder.mp4
│ │ 012 Fluent Builder.mp4
│ │ 013 Faceted Builder.mp4
│ │ 014 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─011 Builder
│ │ │ Creational.Builder.Builder.cs.txt
│ │ │
│ │ └─013 Faceted Builder
│ │ Creational.Builder.BuilderFacets.cs.txt
│ │
│ └─quizzes
│ 001 Builder Coding Exercise.html
│
├─03 Factories
│ │ 015 Overview.mp4
│ │ 016 Point Example.mp4
│ │ 017 Factory Method.mp4
│ │ 018 Factory.mp4
│ │ 019 Inner Factory.mp4
│ │ 020 Abstract Factory.mp4
│ │ 021 Abstract Factory and OCP.mp4
│ │ 022 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─016 Point Example
│ │ │ Creational.Factories.Factory.cs.txt
│ │ │
│ │ └─020 Abstract Factory
│ │ Creational.Factories.AbstractFactory.cs.txt
│ │
│ └─quizzes
│ 002 Factory Coding Exercise.html
│
├─04 Prototype
│ │ 023 Overview.mp4
│ │ 024 ICloneable is Bad.mp4
│ │ 025 Copy Constructors.mp4
│ │ 026 Explicit Deep Copy Interface.mp4
│ │ 027 Copy Through Serialization.mp4
│ │ 028 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─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
│ │
│ └─quizzes
│ 003 Prototype Coding Exercise.html
│
├─05 Singleton
│ │ 029 Overview.mp4
│ │ 030 Singleton Implementation.mp4
│ │ 031 Testability Issues.mp4
│ │ 032 Singleton in Dependency Injection.mp4
│ │ 033 Monostate.mp4
│ │ 034 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─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
│ │
│ └─quizzes
│ 004 Singleton Coding Exercise.html
│
├─06 Adapter
│ │ 035 Overview.mp4
│ │ 036 VectorRaster Demo.mp4
│ │ 037 Adapter Caching.mp4
│ │ 038 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─036 VectorRaster Demo
│ │ │ Structural.Adapter.NoCaching.cs.txt
│ │ │
│ │ └─037 Adapter Caching
│ │ Structural.Adapter.WithCaching.cs.txt
│ │
│ └─quizzes
│ 005 Adapter Coding Exercise.html
│
├─07 Bridge
│ │ 039 Overview.mp4
│ │ 040 Bridge.mp4
│ │ 041 Summary.mp4
│ │ 0OO_Softarchive – Download-More-Here.url
│ │ 0OO_Software.For_Mac0S.txt
│ │ 0OO_Windows.Office-AD0BE-Visual_Studio 2017.txt
│ │
│ ├─attached_files
│ │ └─040 Bridge
│ │ Structural.Bridge.Bridge.cs.txt
│ │
│ └─quizzes
│ 006 Bridge Coding Exercise.html
│
├─08 Composite
│ │ 042 Overview.mp4
│ │ 043 Geometric Shapes.mp4
│ │ 044 Neural Networks.mp4
│ │ 045 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─043 Geometric Shapes
│ │ │ Structural.Composite.GeometricShapes.cs.txt
│ │ │
│ │ └─044 Neural Networks
│ │ Structural.Composite.NeuralNetworks.cs.txt
│ │
│ └─quizzes
│ 007 Composite Coding Exercise.html
│
├─09 Decorator
│ │ 046 Overview.mp4
│ │ 047 Custom String Builder.mp4
│ │ 048 Adapter-Decorator.mp4
│ │ 049 Multiple Inheritance.mp4
│ │ 050 Dynamic Decorator Composition.mp4
│ │ 051 Static Decorator Composition.mp4
│ │ 052 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─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
│ │
│ └─quizzes
│ 008 Decorator Coding Exercise.html
│
├─10 Façade
│ 053 Overview.mp4
│ 054 Façade.mp4
│ 055 Summary.mp4
│
├─11 Flyweight
│ │ 056 Overview.mp4
│ │ 057 Repeating User Names.mp4
│ │ 058 Text Formatting.mp4
│ │ 059 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─057 Repeating User Names
│ │ │ Structural.Flyweight.Users.cs.txt
│ │ │
│ │ └─058 Text Formatting
│ │ Structural.Flyweight.TextFormatting.cs.txt
│ │
│ └─quizzes
│ 009 Flyweight Coding Exercise.html
│
├─12 Proxy – Snorgared – SAnet.cd
│ │ 060 Overview.mp4
│ │ 061 Protection Proxy.mp4
│ │ 062 Property Proxy.mp4
│ │ 063 Dynamic Proxy for Logging.mp4
│ │ 064 Proxy vs. Decorator.mp4
│ │ 065 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─061 Protection Proxy
│ │ │ Structural.Proxy.ProtectionProxy.cs.txt
│ │ │
│ │ ├─062 Property Proxy
│ │ │ PropertyProxy.cs.txt
│ │ │
│ │ └─063 Dynamic Proxy for Logging
│ │ Structural.Proxy.DynamicProxy.cs.txt
│ │
│ └─quizzes
│ 010 Proxy Coding Exercise.html
│
├─13 Chain of Responsibility – Snorgared – SAnet.cd
│ │ 066 Overview.mp4
│ │ 067 Command Query Separation.mp4
│ │ 068 Method Chain.mp4
│ │ 069 Broker Chain.mp4
│ │ 070 Summary.mp4
│ │ 0OO_Softarchive – Download-More-Here.url
│ │ 0OO_Software.For_Mac0S.txt
│ │ 0OO_Windows.Office-AD0BE-Visual_Studio 2017.txt
│ │
│ ├─attached_files
│ │ ├─068 Method Chain
│ │ │ Behavioral.ChainOfResponsibility.MethodChain.cs.txt
│ │ │
│ │ └─069 Broker Chain
│ │ Behavioral.ChainOfResponsibility.BrokerChain.cs.txt
│ │
│ └─quizzes
│ 011 Chain of Responsibility Coding Exercise.html
│
├─14 Command
│ │ 071 Overview.mp4
│ │ 072 Command.mp4
│ │ 073 Undo Operations.mp4
│ │ 074 Summary.mp4
│ │
│ ├─attached_files
│ │ └─072 Command
│ │ Behavioral.Command.Command.cs.txt
│ │
│ └─quizzes
│ 012 Command Coding Exercise.html
│
├─15 Interpreter
│ │ 075 Overview.mp4
│ │ 076 Handmade Interpreter Lexing.mp4
│ │ 077 Handmade Interpreter Parsing.mp4
│ │ 078 ANTLR.mp4
│ │ 079 Summary.mp4
│ │
│ ├─attached_files
│ │ └─076 Handmade Interpreter Lexing
│ │ Behavioral.Interpreter.Handmade.cs.txt
│ │
│ └─quizzes
│ 013 Interpreter Coding Exercise.html
│
├─16 Iterator
│ │ 080 Overview.mp4
│ │ 081 Iterator Object.mp4
│ │ 082 Iterator Method.mp4
│ │ 083 Iterators and Duck Typing.mp4
│ │ 084 Array-Backed Properties.mp4
│ │ 085 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─081 Iterator Object
│ │ │ Behavioral.Iterator.TreeTraversal.cs.txt
│ │ │
│ │ └─084 Array-Backed Properties
│ │ ArrayBackedProperties.cs.txt
│ │
│ └─quizzes
│ 014 Iterator Coding Exercise.html
│
├─17 Mediator
│ │ 086 Overview.mp4
│ │ 087 Chat Room.mp4
│ │ 088 Event Broker.mp4
│ │ 089 Summary.mp4
│ │
│ ├─attached_files
│ │ ├─087 Chat Room
│ │ │ Behavioral.Mediator.ChatRoom.cs.txt
│ │ │
│ │ └─088 Event Broker
│ │ RxEventBroker.cs.txt
│ │
│ └─quizzes
│ 015 Mediator Coding Exercise.html
│
├─18 Memento
│ │ 090 Overview.mp4
│ │ 091 Memento.mp4
│ │ 092 Undo and Redo.mp4
│ │ 093 Memento for Interop.mp4
│ │ 094 Summary.mp4
│ │
│ └─attached_files
│ ├─091 Memento
│ │ Behavioral.Memento.Memento.cs.txt
│ │
│ └─092 Undo and Redo
│ Behavioral.Memento.UndoRedo.cs.txt
│
├─19 Null Object
│ │ 095 Overview.mp4
│ │ 096 Null Object.mp4
│ │ 097 Dynamic Null Object.mp4
│ │ 098 Summary.mp4
│ │ 0OO_Softarchive – Download-More-Here.url
│ │ 0OO_Software.For_Mac0S.txt
│ │ 0OO_Windows.Office-AD0BE-Visual_Studio 2017.txt
│ │
│ └─attached_files
│ └─096 Null Object
│ Behavioral.NullObject.NullObject.cs.txt
│
├─20 Observer
│ │ 099 Overview.mp4
│ │ 100 Observer via the event Keyword.mp4
│ │ 101 Weak Event Pattern.mp4
│ │ 102 Observable Properties and Sequences.mp4
│ │ 103 Summary.mp4
│ │
│ └─attached_files
│ ├─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
│ │ 104 Overview.mp4
│ │ 105 Handmade State Machine.mp4
│ │ 106 State Machine with Stateless.mp4
│ │ 107 Summary.mp4
│ │
│ └─attached_files
│ ├─105 Handmade State Machine
│ │ Behavioral.State.Handmade.cs.txt
│ │
│ └─106 State Machine with Stateless
│ Behavioral.State.Stateless.cs.txt
│
├─22 Strategy
│ │ 108 Overview.mp4
│ │ 109 Dynamic Strategy.mp4
│ │ 110 Static Strategy.mp4
│ │ 111 Summary.mp4
│ │
│ └─attached_files
│ ├─109 Dynamic Strategy
│ │ Behavioral.Strategy.Dynamic.cs.txt
│ │
│ └─110 Static Strategy
│ Behavioral.Strategy.Static.cs.txt
│
├─23 Template Method
│ │ 112 Overview.mp4
│ │ 113 Template Method.mp4
│ │ 114 Summary.mp4
│ │
│ └─attached_files
│ └─113 Template Method
│ Behavioral.TemplateMethod.TemplateMethod.cs.txt
│
├─24 Visitor
│ │ 115 Overview.mp4
│ │ 116 Intrusive Expression Printing.mp4
│ │ 117 Reflection-Based Printing.mp4
│ │ 118 Classic Visitor Double Dispatch.mp4
│ │ 119 Dynamic Visitor via the DLR.mp4
│ │ 120 Summary.mp4
│ │
│ └─attached_files
│ ├─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
121 Creational Paterns Summary.mp4
122 Structural Patterns Summary.mp4
123 Behavioral Patterns Summary.mp4
124 End of Course.mp4
125 Bonus Lecture Other Courses at a Discount.html

课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。