本项目使用 CMake 构建,包含所有 23 种经典设计模式的简单示例。
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
- Singleton (单例模式) - 确保一个类只有一个实例
- Factory (工厂模式) - 定义创建对象的接口
- Abstract Factory (抽象工厂模式) - 创建相关对象家族
- Builder (建造者模式) - 分步骤构建复杂对象
- Prototype (原型模式) - 通过克隆创建对象
- Adapter (适配器模式) - 将一个类的接口转换成客户希望的另一个接口
- Bridge (桥接模式) - 将抽象部分与实现部分分离
- Composite (组合模式) - 将对象组合成树形结构
- Decorator (装饰器模式) - 动态地给对象添加职责
- Facade (外观模式) - 为子系统提供统一接口
- Flyweight (享元模式) - 共享对象以支持大量细粒度对象
- Proxy (代理模式) - 为对象提供代理以控制访问
- Chain of Responsibility (责任链模式) - 沿着责任链传递请求
- Command (命令模式) - 将请求封装为对象
- Iterator (迭代器模式) - 顺序访问聚合对象的元素
- Mediator (中介者模式) - 用中介对象封装对象间交互
- Memento (备忘录模式) - 保存和恢复对象状态
- Observer (观察者模式) - 定义对象间的一对多依赖
- State (状态模式) - 对象在内部状态改变时改变行为
- Strategy (策略模式) - 定义一系列算法并使它们可互换
- Template Method (模板方法模式) - 定义算法骨架,子类实现细节
- Visitor (访问者模式) - 在不改变元素类的前提下定义新操作
- Interpreter (解释器模式) - 定义语言的文法并解释句子
# 创建构建目录
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# 创建构建目录
mkdir build
cd build
# 配置 CMake
cmake ..
# 编译
make
# 运行
./design_patterns_demo- CMake 3.10 或更高版本
- C++17 兼容的编译器 (GCC 7+, Clang 5+, MSVC 2017+)
- 每个模式都有独立的头文件和实现文件
- 查看 main.cpp 了解如何使用各个模式
- 每个模式都包含中文注释说明其用途
- 建议按照创建型、结构型、行为型的顺序学习
本项目仅供学习使用。