这门课解决什么问题
设计模式不是教条,而是解决实际代码问题的工具。当你面对重复造轮子、代码耦合度高、修改牵一发动全身这类场景时,SOLID原则和创建型模式能帮你从源头降低复杂度。对上班族来说,这意味着你写出的代码更稳定、更容易维护;对转行者来说,这是快速建立专业判断力的有效途径。这门课不讲空话,每个原则都配C#代码实例,让你看到它在真实项目中的样子。
适合什么基础
不需要你有大量开发经验。如果你能写出一个完整的控制台应用、理解类与继承、用过接口,这课的基础部分你就能跟上。课程从SOLID原则讲起,循序渐进,不会一上来就堆术语。建议你在学之前,先自己写一个简单的项目,带着问题来听课效果最好。学完这门课,你面对任何新项目,都能判断哪些设计是合理的,哪些是过度设计。
学习顺序与学完产出
建议按SOLID原则的顺序推进:先吃透单一职责原则,再逐个理解开放-关闭、里氏替换、接口隔离、依赖倒置,最后用总结回顾。原则部分学完,你能独立分析一段代码是否存在设计缺陷,也能把原有的类拆成符合原则的结构。创建型模式则按Builder、Abstract Factory、Prototype、Singleton的顺序学,每个模式都配了对比场景,学完你能把复杂对象构造重写为更简洁的模式,也能判断别人写的代码是否值得重构。
资料怎么配合练习
课程代码文件是跟着视频走的,每讲完一个模式,对应代码文件就放在那里。建议边看视频边打开对应的.cs文件,跟着敲一遍。SOLID原则的代码文件可以直接作为练习素材,试着修改其中的类和方法,观察行为变化。创建型模式则更适合动手重写,比如拿一个你已经写过的类,试着用Builder模式重写它。quiz部分用来检验理解,不必一次全做,挑自己没把握的模块过一遍就够了。
课程目录
课程目录273 集
- 00 None.mp4
- 001 Introduction.mp4
- 01 The SOLID Design Principles.mp4
- 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.mp4
- SOLID.SRP.cs.txt
- 004 Open-Closed Principle.mp4
- SOLID.OCP.cs.txt
- 005 Liskov Substitution Principle.mp4
- SOLID.LSP.cs.txt
- 006 Interface Segregation Principle.mp4
- SOLID.ISP.cs.txt
- 007 Dependency Inversion Principle.mp4
- SOLID.DIP.cs.txt
- 02 Builder.mp4
- 009 Overview.mp4
- 010 Life Without Builder.mp4
- 011 Builder.mp4
- 012 Fluent Builder.mp4
- 013 Faceted Builder.mp4
- 014 Summary.mp4
- 011 Builder.mp4
- Creational.Builder.Builder.cs.txt
- 013 Faceted Builder.mp4
- Creational.Builder.BuilderFacets.cs.txt
- quizzes
- 001 Builder Coding Exercise.html
- 03 Factories.mp4
- 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
- 016 Point Example.mp4
- Creational.Factories.Factory.cs.txt
- 020 Abstract Factory.mp4
- Creational.Factories.AbstractFactory.cs.txt
- 002 Factory Coding Exercise.html
- 04 Prototype.mp4
- 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
- 024 ICloneable is Bad.mp4
- Creational.Prototype.ICloneableIsBad.cs.txt
- 025 Copy Constructors.mp4
- Creational.Prototype.CopyConstructors.cs.txt
- 027 Copy Through Serialization.mp4
- Creational.Prototype.CopyThroughSerialization.cs.txt
- 003 Prototype Coding Exercise.html
- 05 Singleton.mp4
- 029 Overview.mp4
- 030 Singleton Implementation.mp4
- 031 Testability Issues.mp4
- 032 Singleton in Dependency Injection.mp4
- 033 Monostate.mp4
- 034 Summary.mp4
- 030 Singleton Implementation.mp4
- Creational.Singleton.Singleton.cs.txt
- 032 Singleton in Dependency Injection.mp4
- Creational.Singleton.SingletonInDI.cs.txt
- 033 Monostate.mp4
- Creational.Singleton.Monostate.cs.txt
- 004 Singleton Coding Exercise.html
- 06 Adapter.mp4
- 035 Overview.mp4
- 036 VectorRaster Demo.mp4
- 037 Adapter Caching.mp4
- 038 Summary.mp4
- 036 VectorRaster Demo.mp4
- Structural.Adapter.NoCaching.cs.txt
- 037 Adapter Caching.mp4
- Structural.Adapter.WithCaching.cs.txt
- 005 Adapter Coding Exercise.html
- 07 Bridge.mp4
- 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
- 040 Bridge.mp4
- Structural.Bridge.Bridge.cs.txt
- 006 Bridge Coding Exercise.html
- 08 Composite.mp4
- 042 Overview.mp4
- 043 Geometric Shapes.mp4
- 044 Neural Networks.mp4
- 045 Summary.mp4
- 043 Geometric Shapes.mp4
- Structural.Composite.GeometricShapes.cs.txt
- 044 Neural Networks.mp4
- Structural.Composite.NeuralNetworks.cs.txt
- 007 Composite Coding Exercise.html
- 09 Decorator.mp4
- 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
- 047 Custom String Builder.mp4
- Structural.Decorator.CodeBuilder.cs.txt
- 048 Adapter-Decorator.mp4
- Structural.Decorator.AdapterDecorator.cs.txt
- 049 Multiple Inheritance.mp4
- Structural.Decorator.MultipleInheritance.cs.txt
- 050 Dynamic Decorator Composition.mp4
- Structural.Decorator.Decorator.cs.txt
- 008 Decorator Coding Exercise.html
- 10 Façade.mp4
- 053 Overview.mp4
- 054 Façade.mp4
- 055 Summary.mp4
- 11 Flyweight.mp4
- 056 Overview.mp4
- 057 Repeating User Names.mp4
- 058 Text Formatting.mp4
- 059 Summary.mp4
- 057 Repeating User Names.mp4
- Structural.Flyweight.Users.cs.txt
- 058 Text Formatting.mp4
- Structural.Flyweight.TextFormatting.cs.txt
- 009 Flyweight Coding Exercise.html
- 12 Proxy - Snorgared - SAnet.cd.mp4
- 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
- 061 Protection Proxy.mp4
- Structural.Proxy.ProtectionProxy.cs.txt
- 062 Property Proxy.mp4
- PropertyProxy.cs.txt
- 063 Dynamic Proxy for Logging.mp4
- Structural.Proxy.DynamicProxy.cs.txt
- 010 Proxy Coding Exercise.html
- 13 Chain of Responsibility - Snorgared - SAnet.cd.mp4
- 066 Overview.mp4
- 067 Command Query Separation.mp4
- 068 Method Chain.mp4
- 069 Broker Chain.mp4
- 070 Summary.mp4
- 068 Method Chain.mp4
- Behavioral.ChainOfResponsibility.MethodChain.cs.txt
- 069 Broker Chain.mp4
- Behavioral.ChainOfResponsibility.BrokerChain.cs.txt
- 011 Chain of Responsibility Coding Exercise.html
- 14 Command.mp4
- 071 Overview.mp4
- 072 Command.mp4
- 073 Undo Operations.mp4
- 074 Summary.mp4
- 072 Command.mp4
- Behavioral.Command.Command.cs.txt
- 012 Command Coding Exercise.html
- 15 Interpreter.mp4
- 075 Overview.mp4
- 076 Handmade Interpreter Lexing.mp4
- 077 Handmade Interpreter Parsing.mp4
- 078 ANTLR.mp4
- 079 Summary.mp4
- 076 Handmade Interpreter Lexing.mp4
- Behavioral.Interpreter.Handmade.cs.txt
- 013 Interpreter Coding Exercise.html
- 16 Iterator.mp4
- 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
- 081 Iterator Object.mp4
- Behavioral.Iterator.TreeTraversal.cs.txt
- 084 Array-Backed Properties.mp4
- ArrayBackedProperties.cs.txt
- 014 Iterator Coding Exercise.html
- 17 Mediator.mp4
- 086 Overview.mp4
- 087 Chat Room.mp4
- 088 Event Broker.mp4
- 089 Summary.mp4
- 087 Chat Room.mp4
- Behavioral.Mediator.ChatRoom.cs.txt
- 088 Event Broker.mp4
- RxEventBroker.cs.txt
- 015 Mediator Coding Exercise.html
- 18 Memento.mp4
- 090 Overview.mp4
- 091 Memento.mp4
- 092 Undo and Redo.mp4
- 093 Memento for Interop.mp4
- 094 Summary.mp4
- 091 Memento.mp4
- Behavioral.Memento.Memento.cs.txt
- 092 Undo and Redo.mp4
- Behavioral.Memento.UndoRedo.cs.txt
- 19 Null Object.mp4
- 095 Overview.mp4
- 096 Null Object.mp4
- 097 Dynamic Null Object.mp4
- 098 Summary.mp4
- 096 Null Object.mp4
- Behavioral.NullObject.NullObject.cs.txt
- 20 Observer.mp4
- 099 Overview.mp4
- 100 Observer via the event Keyword.mp4
- 101 Weak Event Pattern.mp4
- 102 Observable Properties and Sequences.mp4
- 103 Summary.mp4
- 100 Observer via the event Keyword.mp4
- Behavioral.Observer.Events.cs.txt
- 101 Weak Event Pattern.mp4
- Behavioral.Observer.WeakEventPattern.cs.txt
- 102 Observable Properties and Sequences.mp4
- ObserverPattern.cs.txt
- 21 State.mp4
- 104 Overview.mp4
- 105 Handmade State Machine.mp4
- 106 State Machine with Stateless.mp4
- 107 Summary.mp4
- 105 Handmade State Machine.mp4
- Behavioral.State.Handmade.cs.txt
- 106 State Machine with Stateless.mp4
- Behavioral.State.Stateless.cs.txt
- 22 Strategy.mp4
- 108 Overview.mp4
- 109 Dynamic Strategy.mp4
- 110 Static Strategy.mp4
- 111 Summary.mp4
- 109 Dynamic Strategy.mp4
- Behavioral.Strategy.Dynamic.cs.txt
- 110 Static Strategy.mp4
- Behavioral.Strategy.Static.cs.txt
- 23 Template Method.mp4
- 112 Overview.mp4
- 113 Template Method.mp4
- 114 Summary.mp4
- 113 Template Method.mp4
- Behavioral.TemplateMethod.TemplateMethod.cs.txt
- 24 Visitor.mp4
- 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
- 116 Intrusive Expression Printing.mp4
- Behavioral.Visitor.Intrusive.cs.txt
- 117 Reflection-Based Printing.mp4
- Behavioral.Visitor.Reflective.cs.txt
- 118 Classic Visitor Double Dispatch.mp4
- Behavioral.Visitor.Classic.cs.txt
- 119 Dynamic Visitor via the DLR.mp4
- Behavioral.Visitor.Dynamic.cs.txt
- 25 Course Summary.mp4
- 121 Creational Paterns Summary.mp4
- 122 Structural Patterns Summary.mp4
- 123 Behavioral Patterns Summary.mp4
- 124 End of Course.mp4
- 00 None│ 001 Introduction.mp4│
- 01 The SOLID Design Principles│ │ 002 Overview.mp4│ │ 003 Single Responsibility Principle.mp4│






