# CSharp_23_DesignPatterns **Repository Path**: weilong2020/csharp_23_-design-patterns ## Basic Information - **Project Name**: CSharp_23_DesignPatterns - **Description**: C#23种设计模式,用生活中的经典场景做模拟应用场景,体现设计思想的精髓 - **Primary Language**: C# - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 4 - **Created**: 2021-01-14 - **Last Updated**: 2024-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CSharp_23_DesignPatterns #### 介绍 C#23种设计模式,用生活中的经典场景做模拟应用场景,体现设计思想的精髓 #### 分类 1. 创建型设计模式(Creational Patterns):通过提供实例化对象的方式解决对象创建的问题,包括工厂方法、抽象工厂、建造者、原型和单例模式。 2. 结构型设计模式(Structural Patterns):通过定义对象之间的关系来解决对象组合的问题,包括适配器、桥接、组合、装饰器、外观、享元和代理模式。 3. 行为型设计模式(Behavioral Patterns):通过定义对象之间的通信方式来解决对象之间的交互问题,包括责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法和访问者模式。 #### 一句话描述 1. 创建型设计模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern):适用于需要根据特定条件创建对象的情况。 - 抽象工厂模式(Abstract Factory Pattern):适用于需要创建一组相关或依赖对象的情况。 - 建造者模式(Builder Pattern):适用于需要按照特定顺序创建复杂对象的情况。 - 原型模式(Prototype Pattern):适用于需要通过复制现有对象来创建新对象的情况。 - 单例模式(Singleton Pattern):适用于需要确保只有一个实例存在的情况。 2. 结构型设计模式(Structural Patterns): - 适配器模式(Adapter Pattern):适用于需要将一个类的接口转换成另一个类的接口的情况。 - 桥接模式(Bridge Pattern):适用于需要将抽象部分与其实现部分分离的情况。 - 组合模式(Composite Pattern):适用于需要将对象组合成树形结构以表示部分-整体关系的情况。 - 装饰器模式(Decorator Pattern):适用于需要在不修改原始对象的情况下动态地添加功能的情况。 - 外观模式(Facade Pattern):适用于需要为复杂子系统提供简化接口的情况。 - 享元模式(Flyweight Pattern):适用于需要共享大量细粒度对象以节省内存的情况。 - 代理模式(Proxy Pattern):适用于需要控制对对象的访问的情况。 3. 行为型设计模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern):适用于需要将请求从一个对象传递到另一个对象的情况。 - 命令模式(Command Pattern):适用于需要将请求封装成对象以进行参数化和操作的情况。 - 解释器模式(Interpreter Pattern):适用于需要解释和执行特定语言语法或表达式的情况。 - 迭代器模式(Iterator Pattern):适用于需要顺序访问集合对象元素的情况。 - 中介者模式(Mediator Pattern):适用于需要通过中介对象来协调一组对象之间的交互的情况。 - 备忘录模式(Memento Pattern):适用于需要捕获和恢复对象内部状态的情况。 - 观察者模式(Observer Pattern):适用于需要在对象之间建立一对多的依赖关系的情况。 - 状态模式(State Pattern):适用于需要根据对象内部状态改变其行为的情况。 - 策略模式(Strategy Pattern):适用于需要在运行时选择算法的情况。 - 模板方法模式(Template Method Pattern):适用于需要定义算法骨架并允许子类实现特定步骤的情况。 - 访问者模式(Visitor Pattern):适用于需要对对象结构进行操作而不改变其类的情况。 这些设计模式各自适用于不同的场景,可以根据具体的问题和需求选择合适的设计模式来解决问题,提高代码的可维护性、可扩展性和重用性。 #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献