Python 设计模式专栏索引
本专栏系统讲解Python中的设计模式,涵盖GoF23种经典模式中的22种,以及面向对象基础、常用工具等前置知识。所有模式均配有通俗易懂的讲解和Python实战代码。一、前置知识在正式学习设计模式之前,建议先掌握以下基础概念:文章简介什么是…
Python 实战与设计模式连载:从语法基础到面向对象、设计模式与工程化落地。
本专栏系统讲解Python中的设计模式,涵盖GoF23种经典模式中的22种,以及面向对象基础、常用工具等前置知识。所有模式均配有通俗易懂的讲解和Python实战代码。一、前置知识在正式学习设计模式之前,建议先掌握以下基础概念:文章简介什么是…
Python设计模式:解释器模式——让代码读懂你的语言你有没有想过,计算器是如何解析并执行1+2*(3-4)这样的表达式的?或者SQL引擎是如何理解SELECT*FROMusersWHEREage>18这样的语句的?这些看似复杂的”语…
你有没有用过Git的版本回退?或者游戏的存档/读档功能?这些看似不同的操作,背后其实都是同一个设计思想——备忘录模式(MementoPattern)。想象一下:你正在开发一个文本编辑器,用户希望随时撤销(Undo)操作。如果每次编辑都直接修…
遍历一个集合,是编程中最常见的操作之一。但如果你需要遍历的不仅仅是列表,而是一棵树、一个文件目录、一段网络流,甚至是一个数据库查询结果呢?迭代器模式(IteratorPattern)就是为此而生——它提供一种方法,让你在不暴露集合内部结构的…
在复杂系统中,你是否遇到过这样的情况:多个对象之间相互调用类之间互相依赖一个改动影响多个模块典型表现就是:对象之间”网状依赖”,越改越乱。例如一个聊天室系统:user1.send("hello")user2.receiv…
在很多业务系统中,你会遇到这样的场景:请求需要经过多个处理步骤每个步骤可能处理,也可能放行处理流程可以动态调整例如:审批流程(组长→经理→总监)Web中间件(鉴权→日志→限流)风控系统(规则1→规则2→规则3)如果你这样写:defhandl…
在很多系统中,你会遇到这样的需求:把”操作”当成对象传递支持操作的撤销(Undo)支持操作队列/延迟执行支持日志记录与重放例如:编辑器的撤销/重做任务队列(异步执行)按钮点击绑定不同行为审批操作记录如果直接写函数调用:light.turn_…
在很多业务系统中,你一定遇到过这种代码:defhandle(order):iforder.status=="created":...eliforder.status=="…
在很多系统中,你会遇到这样的需求:数据变化了,要通知多个模块一个事件发生,需要触发多个动作状态更新后,界面自动刷新例如:订单状态变化→通知用户、更新库存、记录日志配置变更→通知多个服务刷新缓存前端数据变化→自动更新UI如果你这样写:defu…
在开发中,你是否写过这样的代码:defprocess():step1()step2()step3()然后在另一个地方:defprocess_v2():step1()step2_new()step3()再后来:defprocess_v3():…