IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 设计模式 — Overview -> 正文阅读

[Python知识库]Python 设计模式 — Overview

目录

设计模式(Design Pattern)

设计模式(Design Pattern)是几十年来的开发人员经过了长时间的试验和摸索,总结出来的一套程序设计标准。无论你使用哪种编程语言,做什么类型的项目,甚至处在一个国际化的开发团队中,当面对同一个设计模式时,你和别人的理解依旧是别无二致。几乎所有的大型软件、编程语言、框架都使用了这些标准。

设计模式可以从 2 个方面来理解:

  1. 设计:用来解决特定问题的优秀解决方案。
  2. 模式:具有通用性的执行方式。

设计模式的作用:

  1. 提高代码的可读性、可靠性、可复用性,使编程真正工程化;
  2. 便于后期维护项目,增强系统的健壮性和扩展性;
  3. 锻炼程序员的设计思维,提高代码质量。

设计模式具有以下特点:

  1. 在架构级别来解决问题。
  2. 经过了时间的验证和良好的证明,是开发人员和架构师的宝贵经验。
  3. 具有可靠性和依赖性。

设计模式很有用,但它要用到合适的场景中才能发挥应有的效果,否则可能出现弊大于利的情况。GoF 在《Design Patterns: Elements of Reusable Object-Oriented Software》一书中提出了 23 种设计模式,可归纳为 3 大类。

这些设计模式在 OOP(面向对象编程语言)中使用最多。值得注意的是,因为 Python 拥有一等函数,所以通常的在语法层面就具备了某些设计模式的特性,也减少了某些设计模式的样板代码。

设计模式的分类

在这里插入图片描述

一、创建型模式

创建型模式,用于控制或影响一个类的实例化对象的创建过称。为不同的应用场景提供相应的实例化对象的方式。例如:单例模式。

  1. 单例模式:控制实例化对象的数量只存在一个。
  2. 工厂方法模式:控制实例化对象时候的类的选择。
  3. 抽象工厂模式:控制实例化对象时候的类的选择。
  4. 建造者模式:控制多个类以相同的流程来实例化对象。
  5. 原型模式:通过深度复制原型类让类的多个实例化更加的迅速。

二、结构型模式

结构型模式,应用于类和对象的构造方式,为不同的应用场景提供相应的类和对象之间的构造关系,使得这些实体能够更好地协同工作。例如:适配器模式。主要关注类的继承和组合,致力于设计出通过组合获得更强大功能的对象和类的结构。

  1. 适配器模式:将任意个被适配者(类或系统)中的方法封装成为一个统一的接口来调用,从而达到适配各种系统方法的目的。
  2. 桥接模式:处理(类)抽象部分与(实例化)对象部分之间的结构,使得抽象部分和实例化部分能够单独变化而不互相干扰。
  3. 组合模式:用于设计一个有层次等级的系统,并处理各层次之间的关系。
  4. 装饰模式:通过装饰器来扩展一个类或者系统的功能。
  5. 外观模式:为任意个子系统中的相似功能设计一组统一的界面。
  6. 享元模式 :让小粒度高频使用的类被共享,减少实例化过程,减少损耗。
  7. 代理模式:为其他对象提供一种代理,以此控制一个对象的访问方式。Client 必须通过代理访问,而不能直接访问。

三、行为型模式

行为型模式,应用于对象之间的交互方式,为不同的应用场景提供相应的通信方式,为实体之间的通信提供更容易、更灵活的通信方法。

在这里插入图片描述

  1. 解释器模式
  2. 模板方法模式
  3. 责任链模式
  4. 命令模式
  5. 迭代器模式
  6. 中介者模式
  7. 备忘录模式
  8. 观察者模式
  9. 状态模式
  10. 策略模式
  11. 访问者模式
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:05:39  更:2022-02-14 21:05:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 3:15:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计