Skip to content

This is a design patterns code repository implemented in C#, containing common design pattern implementation examples. The project adopts a Visual Studio solution structure, with each design pattern implemented as an independent project for easy learning and understanding.

Notifications You must be signed in to change notification settings

moshi2005/DesignPattern

Repository files navigation

设计模式代码库

项目概述

这是一个使用C#语言实现的设计模式代码库,包含了常见的设计模式实现示例。项目采用Visual Studio解决方案结构,每个设计模式独立成一个项目,便于学习和理解。

项目结构

AI_设计模式/
├── DesignPatterns.sln                  # 主解决方案文件
├── SingletonPattern/                   # 单例模式
├── FactoryPattern/                     # 工厂模式
├── FactoryMethodPattern/               # 工厂方法模式
├── AbstractFactoryPattern/             # 抽象工厂模式
├── BuilderPattern/                     # 建造者模式
├── PrototypePattern/                   # 原型模式
├── AdapterPattern/                     # 适配器模式
├── BridgePattern/                      # 桥接模式
├── CompositePattern/                   # 组合模式
├── DecoratorPattern/                   # 装饰器模式
├── FacadePattern/                      # 外观模式
├── ProxyPattern/                       # 代理模式
└── ObserverPattern/                    # 观察者模式

设计模式实现说明

1. 单例模式 (SingletonPattern)

单例模式确保一个类只有一个实例,并提供一个全局访问点。本项目实现了多种单例模式变体:

  • 饿汉式单例:线程安全,但实例在类加载时就创建
  • 懒汉式单例:延迟初始化,但非线程安全
  • 线程安全的懒汉式:使用锁确保线程安全
  • 双重检查锁定:提高性能的线程安全实现

2. 工厂模式 (FactoryPattern)

工厂模式提供了创建对象的最佳方式。本项目包含:

  • 简单工厂模式:通过静态方法根据参数创建不同类型的对象
  • 工厂方法模式:定义一个创建对象的接口,但由子类决定实例化的类

3. 抽象工厂模式 (AbstractFactoryPattern)

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。

4. 建造者模式 (BuilderPattern)

建造者模式用于构建复杂对象,将一个复杂对象的构建与它的表示分离。包含:

  • 产品类:表示被构建的复杂对象
  • 抽象建造者:定义创建产品各个部件的接口
  • 具体建造者:实现抽象建造者的方法,构建具体产品
  • 指挥者:负责按照特定顺序调用建造者的方法

5. 原型模式 (PrototypePattern)

原型模式用于通过复制现有对象来创建新对象,而不依赖于具体类。

6. 适配器模式 (AdapterPattern)

适配器模式允许接口不兼容的类一起工作。本项目实现了对象适配器,通过组合方式实现适配功能。

7. 桥接模式 (BridgePattern)

桥接模式将抽象部分与其实现部分分离,使它们都可以独立地变化。

8. 组合模式 (CompositePattern)

组合模式允许将对象组合成树形结构来表示"部分-整体"的层次结构。包含:

  • 组件接口:定义所有构件共有的操作
  • 叶子节点:表示树中的叶节点对象
  • 复合节点:表示有子节点的复杂构件

9. 装饰器模式 (DecoratorPattern)

装饰器模式动态地给一个对象添加一些额外的职责。包含:

  • 抽象组件:定义被装饰对象的接口
  • 具体组件:实现抽象组件的接口
  • 抽象装饰器:包含一个组件对象的引用
  • 具体装饰器:向组件添加新的责任

10. 外观模式 (FacadePattern)

外观模式为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,使得子系统更容易使用。

11. 代理模式 (ProxyPattern)

代理模式为另一个对象提供一个代理或占位符,以控制对它的访问。

12. 观察者模式 (ObserverPattern)

观察者模式定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。包含:

  • 观察者接口:定义更新接口
  • 主题接口:定义注册、删除观察者和通知观察者的方法
  • 具体主题:实现主题接口,维护观察者列表
  • 具体观察者:实现观察者接口,接收通知并更新

技术特点

  1. 语言与框架:使用C#语言实现,基于.NET框架
  2. 示例驱动:每个设计模式都包含完整的可运行示例
  3. 结构清晰:每个设计模式独立成一个项目,便于单独学习和测试
  4. 注释详尽:代码中包含详细的注释,解释设计模式的核心概念和实现细节
  5. 多种变体:对于一些常用设计模式,提供了多种实现变体,如单例模式的多种实现方式

使用方法

  1. 使用Visual Studio打开 DesignPatterns.sln 解决方案
  2. 选择要运行的设计模式项目,设置为启动项目
  3. 按下F5或点击运行按钮,即可看到设计模式的演示效果

学习价值

本代码库适合以下人群学习:

  • 对设计模式感兴趣的初学者
  • 希望巩固设计模式知识的开发人员
  • 准备技术面试需要复习设计模式的求职者
  • 想要在实际项目中应用设计模式的开发者

通过学习这些设计模式的实现,可以帮助开发者编写更加灵活、可维护和可扩展的软件系统。

About

This is a design patterns code repository implemented in C#, containing common design pattern implementation examples. The project adopts a Visual Studio solution structure, with each design pattern implemented as an independent project for easy learning and understanding.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages