【Python笔记】设计模式

参考地址:

  1. 常用设计模式有哪些?
  2. https://github.com/faif/python-patterns/tree/master?tab=readme-ov-file

一、设计模式是什么

设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。

是解决实际问题的思想,不是固定的方法或库

一般模式的描述通常包含以下部分:

  • 意图:简单描述问题和解决方案
  • 动机:将进一步解释问题并说明模式会如何提供解决方案
  • 结构:展示模式的每个部分和它们之间的关系

熟悉这三点后,我们可以快速定位问题,并找出解决问题的最佳方案。

二、设计模式六大原则

名称

定义

说明

单一职责原则

Single Responsibility Principle

一个类或方法只负责一项职责

将程序或功能进行模块化拆分,降低耦合

开闭原则

Open Closed Principle

扩展开放,对修改关闭

程序进行功能扩展的时候,不能修改原有代码,,应实现一个新功能热插拔的效果

里氏替换原则

Liskov Substitution Principle

任何基类出现的地方,子类一定可以出现

继承复用的基石,只有当子类可以替换掉基类,软件功能不受影响时,基类才能真正被复用,子类也能够在基类的基础上增加新的行为

迪米特法则

Law of Demeter

最少知道原则,使功能模块尽量独立

一个类尽量少的与其他类发生相互作用,当一个类发生改变时,对另一个类的影响也越大。

接口隔离原则

Interface Segregation Principle

使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度

降低耦合度,抽象类或抽象方法单独设计,互相隔离

依赖倒置原则

Dependence Inversion Principle

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。其核心思想是:依赖于抽象。

类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。

三、设计模式的分类

不同设计模式的复杂程度、 细节层次以及在整个系统中的应用范围等方面各不相同。

最基础的、底层的模式通常被称为惯用技巧。这类模式一般只能在一种编程语言中使用。

最通用的、高层的模式是构架模式。开发者可以在任何编程语言中使用这类模式。与其他模式不同,它们可用于整个应用程序的架构设计。

此外, 所有模式可以根据其意图或目的来分类

  • 创建型模式:提供创建对象的机制, 增加已有代码的灵活性和可复用性。
  • 结构型模式:介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。
  • 行为模式:负责对象间的高效沟通和职责委派。

(一) 创建型模式

创建型模式提供了创建对象的机制, 能够提升已有代码的灵 活性和可复用性。

1. 抽象工厂模式(abstract_factory)

【Python笔记-设计模式】抽象工厂模式-CSDN博客

2. 单例模式(singleton)

【Python笔记-设计模式】单例模式-CSDN博客

3. 建造者模式(builder)【待更新】

你可能感兴趣的:(Python,设计模式,python)