python-patterns:Python 设计模式集合,42k+ Star

发布时间:2026/7/5 4:57:00

python-patterns:Python 设计模式集合,42k+ Star 文章目录python-patternsPython 设计模式集合42k Starpython-patternsPython 设计模式集合42k StarGitHub 上有一个仓库把常见的设计模式用 Python 重新实现了一遍收获了 42k 的 Star。这个仓库叫 python-patterns由开发者 faif 维护收录了创建型、结构型、行为型等多种设计模式的 Python 实现。每个模式都是独立的 Python 文件可以直接运行和学习。创建型模式创建型模式关注的是对象的创建方式。仓库中收录了以下几种abstract_factory用通用函数配合具体工厂来创建对象borg一种共享状态的单例模式所有实例共享同一个字典builder通过构建对象逐步接收参数最终返回构造好的对象factory将实例创建委托给专门的函数或方法lazy_evaluationPython 中的惰性求值属性模式pool预先实例化并维护一组相同类型的对象prototype使用工厂和原型克隆来创建新实例适合实例化成本较高的场景结构型模式结构型模式定义了类和对象如何组合成更大的结构adapter通过白名单将一个接口适配到另一个接口bridge在客户端和提供者之间充当中间人降低接口变更的影响composite让客户端可以统一处理单个对象和组合对象decorator用其他功能包装功能从而影响输出facade用一个类作为一组其他类的 APIflyweight透明地复用具有相似或相同状态的现有实例proxy一个对象将操作转发给另一个对象mvc模型、视图、控制器的非严格关系模式行为型模式行为型模式关注对象之间的通信和职责分配chain_of_responsibility用一连串处理器依次尝试处理数据command将命令和参数打包稍后调用iterator遍历容器并访问其元素mediator一个对象知道如何连接其他对象并充当代理memento生成不透明令牌用于回退到之前的状态observer为事件或数据变化提供回调通知publish_subscribe源将事件或数据分发给零个或多个注册的监听者state将逻辑组织为离散的潜在状态以及可转换的下一状态strategy对同一数据的可选操作template对象强加一个结构但接受可插拔的组件visitor对集合中的所有项调用回调反模式仓库还列出了一些在 Python 中不推荐使用的设计模式SingletonPython 模块本身就是单例每个模块只会被导入一次。显式的单例类增加了不必要的复杂度更好的做法是使用模块级变量或依赖注入。God Object把太多逻辑集中在一个类里会让代码难以测试和维护。应该把功能拆分成更小、更内聚的类。继承过度使用深层继承树会让代码变得脆弱。Python 社区更倾向于组合优于继承。依赖注入和委托模式仓库还包含了依赖注入的三种变体实现以及委托模式的实现。委托模式中一个对象通过委托给第二个对象来处理请求。其他模式除了经典的 GoF 模式仓库还收录了一些非标准模式blackboard一种架构模型通过整合不同子系统的知识来构建解决方案graph_search图搜索算法的实现hsm层次状态机的实现安装使用克隆仓库后可以直接查看每个模式的源码git clone https://github.com/faif/python-patterns每个模式文件都包含模块级的 docstring部分文件还提供了 Python 生态中的实际应用示例。仓库还附带了视频资源包括 Peter Ullrich 的 Python 设计模式演讲以及 Sebastian Buczynski 关于为什么在 Python 中不需要设计模式的讨论。对于想要深入理解设计模式在 Python 中如何落地的开发者来说这个仓库是一个不错的参考。每个模式都有独立的实现文件可以单独阅读和运行不需要依赖整个项目。的讨论。对于想要深入理解设计模式在 Python 中如何落地的开发者来说这个仓库是一个不错的参考。每个模式都有独立的实现文件可以单独阅读和运行不需要依赖整个项目。

相关新闻