Skip to content

lhxsm/23-Design-Patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

23种设计模式 C++ 实现

23 Design Patterns in C++

本项目使用 CMake 构建,包含所有 23 种经典设计模式的简单示例。

项目结构 (Project Structure)

cppDemo/
├── CMakeLists.txt              # 主 CMake 配置文件
├── main.cpp                    # 主程序入口
├── include/                    # 头文件目录
├── creational/                 # 创建型模式
│   ├── CMakeLists.txt
│   ├── singleton.cpp
│   ├── factory.cpp
│   ├── abstract_factory.cpp
│   ├── builder.cpp
│   └── prototype.cpp
├── structural/                 # 结构型模式
│   ├── CMakeLists.txt
│   ├── adapter.cpp
│   ├── bridge.cpp
│   ├── composite.cpp
│   ├── decorator.cpp
│   ├── facade.cpp
│   ├── flyweight.cpp
│   └── proxy.cpp
└── behavioral/                 # 行为型模式
    ├── CMakeLists.txt
    ├── chain_of_responsibility.cpp
    ├── command.cpp
    ├── iterator.cpp
    ├── mediator.cpp
    ├── memento.cpp
    ├── observer.cpp
    ├── state.cpp
    ├── strategy.cpp
    ├── template_method.cpp
    ├── visitor.cpp
    └── interpreter.cpp

设计模式分类 (Design Patterns Categories)

创建型模式 (Creational Patterns) - 5种

  1. Singleton (单例模式) - 确保一个类只有一个实例
  2. Factory (工厂模式) - 定义创建对象的接口
  3. Abstract Factory (抽象工厂模式) - 创建相关对象家族
  4. Builder (建造者模式) - 分步骤构建复杂对象
  5. Prototype (原型模式) - 通过克隆创建对象

结构型模式 (Structural Patterns) - 7种

  1. Adapter (适配器模式) - 将一个类的接口转换成客户希望的另一个接口
  2. Bridge (桥接模式) - 将抽象部分与实现部分分离
  3. Composite (组合模式) - 将对象组合成树形结构
  4. Decorator (装饰器模式) - 动态地给对象添加职责
  5. Facade (外观模式) - 为子系统提供统一接口
  6. Flyweight (享元模式) - 共享对象以支持大量细粒度对象
  7. Proxy (代理模式) - 为对象提供代理以控制访问

行为型模式 (Behavioral Patterns) - 11种

  1. Chain of Responsibility (责任链模式) - 沿着责任链传递请求
  2. Command (命令模式) - 将请求封装为对象
  3. Iterator (迭代器模式) - 顺序访问聚合对象的元素
  4. Mediator (中介者模式) - 用中介对象封装对象间交互
  5. Memento (备忘录模式) - 保存和恢复对象状态
  6. Observer (观察者模式) - 定义对象间的一对多依赖
  7. State (状态模式) - 对象在内部状态改变时改变行为
  8. Strategy (策略模式) - 定义一系列算法并使它们可互换
  9. Template Method (模板方法模式) - 定义算法骨架,子类实现细节
  10. Visitor (访问者模式) - 在不改变元素类的前提下定义新操作
  11. Interpreter (解释器模式) - 定义语言的文法并解释句子

构建和运行 (Build and Run)

Windows (使用 MinGW 或 Visual Studio)

# 创建构建目录
mkdir build
cd build

# 配置 CMake (使用 MinGW)
cmake -G "MinGW Makefiles" ..

# 或者使用 Visual Studio
cmake -G "Visual Studio 17 2022" ..

# 编译
cmake --build .

# 运行
./design_patterns_demo.exe
#
Debug/design_patterns_demo.exe

Linux / macOS

# 创建构建目录
mkdir build
cd build

# 配置 CMake
cmake ..

# 编译
make

# 运行
./design_patterns_demo

要求 (Requirements)

  • CMake 3.10 或更高版本
  • C++17 兼容的编译器 (GCC 7+, Clang 5+, MSVC 2017+)

学习建议 (Learning Tips)

  1. 每个模式都有独立的头文件和实现文件
  2. 查看 main.cpp 了解如何使用各个模式
  3. 每个模式都包含中文注释说明其用途
  4. 建议按照创建型、结构型、行为型的顺序学习

许可证 (License)

本项目仅供学习使用。

About

23 Design Patterns C++ demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •