[精通Python设计模式]笔记

文章目录

设计模式(python)

1、工厂模式

1.1、简单描述

每个工厂方法对外提供一致的API,新增工厂方法后,工厂的使用者无需更改代码。

1.2、应用场景

  1. 想要追踪对象的创建时
  2. 想要将对象的创建与使用解耦时
  3. 想要优化应用的性能和资源占用时

2、建造者模式

2.1、简单描述

分为指挥者、建造者:

  1. 指挥者:指挥建造者
  2. 建造者:分步骤逐步建造复杂类

2.2、应用场景:

  1. 创建一个复杂对象,对象由多个部分构成,且对象的创建要经过多个不同的步骤,,这些步骤也许还需遵从特定的顺序
  2. 想要将对象的构造与表现解耦
  3. 某个时间点创建对象,但在稍后的时间点再访问

3、原型模式

3.1、简单描述

基于现有的类进行深拷贝+部分属性的修改

3.2、应用场景

  1. 对一个副本进行更改而不会影响其他对象

4、适配器模式

4.1、简单描述

旧的API的输出不符合新任务场景,通过在旧API基础上再次包装,使得API能输出新任务场景需要的数据。类似USB转TypeC的转接线一样

4.2、应用场景

  1. 让一件产品在制造出来之后需要应对新需求之时还能工作
  2. 满足开放/封闭原则(对软件扩展是开放的,修改则是封闭的)
相关推荐
中屹指纹浏览器5 分钟前
2026指纹浏览器底层性能优化:内存管理与进程调度实战解析
经验分享·笔记
悠哉悠哉愿意9 分钟前
【物联网学习笔记】OLED
笔记·单片机·嵌入式硬件·物联网·学习
YuanDaima204824 分钟前
解决Conda环境下RTX 50系列显卡PyTorch+Transformers+PEFT微调报错
人工智能·pytorch·笔记·python·深度学习·机器学习·conda
郑同学zxc44 分钟前
Claude Code 的学习笔记
人工智能·笔记·学习
南境十里·墨染春水1 小时前
C++笔记 继承中重载规则 公有私有继承的区别(面向对象)
开发语言·c++·笔记
iiiiii111 小时前
【LLM学习笔记】Batch Normalization vs Layer Normalization,为什么 NLP 中使用 LN 而非 BN
笔记·深度学习·学习·语言模型·大模型·llm·transformer
今儿敲了吗1 小时前
49| 枚举排列
数据结构·c++·笔记·学习·算法
智算菩萨1 小时前
【Tkinter】14 事件处理机制深度解析:从基础绑定到高级传播,构建交互式绘图笔记应用
开发语言·笔记·python·microsoft·ui·ai编程·tkinter
老毛肚1 小时前
云原生笔记
笔记
2301_781143561 小时前
C语言学习笔记(五)
笔记·学习