040.Python面向对象_设计原则

2023-12-12 05:20

本文主要是介绍040.Python面向对象_设计原则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

无奋斗不青春

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

分隔线

面向对象设计原则

    • 面向对象设计原则
      • 面向对象遵循的原则:SOLID
        • S(Single Responsibility Principle)
        • O(Open Closed Principle)
        • L(Liskov Substitution Principle)
        • I(Interface Segregation Principle)
        • D(Dependency Inversion Principle)

面向对象设计原则

面向对象遵循的原则:SOLID

S(Single Responsibility Principle)
  • 单一职责原则
    • 一个类只负责一项职责
  • 好处
    • 易于维护,写出高内聚的代码
    • 易于代码复用
  • 案例:计算器
    • 假设只包含加减乘除运算和结果打印
    • 如果往后需要增加:结果写入文件、结果参与其他运算、结果上传服务器…
    • 是不是每一次都需要去修改此类?就导致这个类变得特别臃肿,不利于维护和部分代码复用
  • 解决方案
    • 计算器只包含,加减乘除运算以及结果返回
    • 根据不同情况,将对结果的处理分散到其它合适的类别中
O(Open Closed Principle)
  • 开放封闭原则
    • 对扩展开放
    • 对修改关闭
  • 好处
    • 易于维护,保证代码安全性以及扩展性
  • 案例:在Person类中让小猫、小狗工作
    • 假设小狗小苗的工作方法名分别是watch和catch,那么Person类中让宠物工作的方法就需要通过if进行多分支判定
    • 如果以后,扩展了新的宠物类,那么Person类中的让宠物工作的方法,必须要跟着修改
  • 解决方案
    • 通过基类,以及抽象类等方案进行方法的统一
L(Liskov Substitution Principle)
  • 里氏替换原则
    • 使用基类引用的地方必须能使用继承类的对象
  • 好处
    • 防止代码出现不可预知的错误
    • 方便针对于基类的测试代码,可以复用在子类上
  • 案例:小鸟类
    • 小鸟类作为父类,添加了一个共有特性:飞
    • 子类:小燕子和鸵鸟,但是鸵鸟又没有这个飞的特性,此时在调用了飞的这个特性方法的地方就不能使用鸵鸟这个子类对象
  • 解决方案
    • 增加飞行类和不能飞行类继承自小鸟类,具体的小燕子和鸵鸟类再分别继承飞行类和不能飞行类
I(Interface Segregation Principle)
  • 接口分离原则
    • 如果一个类包含了过多的接口方法,而这些方法在使用的过程中并非"不可分割",那么应当把他们进行分离
  • 所谓接口在Python中,可以简单的理解为"抽象方法"
  • 好处
    • 提高接口的重用价值
  • 案例:小鸟类——吃、叫、飞属性
    • 上述接口设计在有鸵鸟类的前提下,设计就不合理(鸵鸟不会飞)
  • 解决方案
    • 将吃和叫分离到一个类当中,把飞分离到另外一个类当中
D(Dependency Inversion Principle)
  • 依赖倒置原则
    • 高层模块不应该直接依赖低层模块
    • 他们应该依赖抽象类或者接口
  • 好处
    • 利于代码扩展和维护
  • 案例:电脑类
    • 依赖的不是某一个具体鼠标类
    • 而应该是,鼠标类的抽象
      • 能单击、能双击、能右击、能移动鼠标指针…
      • 到时,可以是触摸板、也可以是有线鼠标、也可以是蓝牙鼠标…

这篇关于040.Python面向对象_设计原则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483381

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地