Design Patterns Guide
Implementing 23 design patterns in three categories using Python to help understand programming concepts

Click to view larger
1 / 3
项目简介
这是一个使用 Python 语言实现的设计模式教程项目,详细介绍了 GoF 23 种经典设计模式。每种模式都配有清晰的代码实现、使用场景分析和 UML 类图,是学习面向对象设计和软件架构的优秀资源。
设计模式分类
设计模式 (23 种)
│
├─► 创建型模式 (5 种)
│ • 工厂方法 • 抽象工厂 • 单例 • 建造者 • 原型
│
├─► 结构型模式 (7 种)
│ • 适配器 • 桥接 • 组合 • 装饰器 • 外观 • 享元 • 代理
│
└─► 行为型模式 (11 种)
• 策略 • 模板方法 • 观察者 • 迭代器 • 责任链
• 命令 • 备忘录 • 状态 • 访问者 • 中介者 • 解释器
创建型模式
1. 单例模式 (Singleton)
确保一个类只有一个实例,并提供全局访问点。
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
2. 工厂方法模式 (Factory Method)
定义创建对象的接口,让子类决定实例化哪个类。
3. 抽象工厂模式 (Abstract Factory)
创建一系列相关或依赖对象的接口。
4. 建造者模式 (Builder)
分步骤创建复杂对象。
5. 原型模式 (Prototype)
通过复制现有对象创建新对象。
结构型模式
6. 适配器模式 (Adapter)
将一个类的接口转换成客户期望的另一个接口。
7. 装饰器模式 (Decorator)
动态地给对象添加额外功能。
def decorator(func):
def wrapper(*args, **kwargs):
# 前置处理
result = func(*args, **kwargs)
# 后置处理
return result
return wrapper
8. 代理模式 (Proxy)
为其他对象提供代理以控制对这个对象的访问。
其他结构型模式
- 桥接模式 - 分离抽象和实现
- 组合模式 - 树形结构对象组合
- 外观模式 - 简化子系统接口
- 享元模式 - 对象共享以减少内存
行为型模式
9. 策略模式 (Strategy)
定义算法族,分别封装,让它们可以互相替换。
class Strategy:
def execute(self, data): pass
class ConcreteStrategyA(Strategy):
def execute(self, data):
# 算法 A 实现
pass
10. 观察者模式 (Observer)
对象间的一对多依赖关系,当一个对象改变状态,所有依赖者都会收到通知。
11. 模板方法模式 (Template Method)
定义算法骨架,将某些步骤延迟到子类。
其他行为型模式
- 责任链模式 - 请求沿链传递
- 命令模式 - 请求封装成对象
- 迭代器模式 - 遍历集合对象
- 中介者模式 - 对象间松耦合通信
- 备忘录模式 - 对象状态保存与恢复
- 状态模式 - 对象状态改变行为
- 访问者模式 - 操作复杂对象结构
- 解释器模式 - 语法解释
项目特点
- 清晰的代码实现
- 详细的使用场景说明
- UML 类图展示
- Python 最佳实践
- 可运行示例代码
学习价值
- 理解面向对象设计原则
- 提高代码可维护性
- 掌握常用架构模式
- 培养良好的编程习惯
- 提升代码复用性
适用场景
- 软件架构学习
- 面试准备
- 代码重构参考
- 团队培训材料
- 设计决策参考