面向过程与面向对象

一、定义

面向过程:传统的面向过程的编程思想总结起来就八个字------自顶向下,逐步细化!

→ 将要实现的功能描述为⼀个从开始到结束按部就班的连续的"步骤",依次逐步完成这些步骤,如果某⼀个步骤的难度较⼤,⼜可以将该步骤再次细化为若⼲个⼦步骤,以此类推,⼀直到结尾并得到我们想要的结果。

面向对象:所谓的模拟现实世界,就是使计算机的编程语⾔在解决相关业务逻辑的时候,与真实的业务逻辑的发⽣保持⼀致,需要使任何⼀个动作的发⽣都存在⼀个⽀配给该动作的⼀个实体(主体),因为在现实世界中,任何⼀个功能的实现都可以看做是⼀个⼀个的实体在发挥其各⾃的"功能"(能⼒)并在内部进⾏协调有序的调⽤过程!

二、核心

面向过程:程序 = 数据结构 + 算法

特点是:自顶向下设计,按步骤执行

面向对象:程序 = 对象 + 消息

提点是:封装、继承、多态三大特性

三、属性和功能

定义这些动作的主体,为其增加相应的属性和功能

属性就是实体固有的某些特征特性信息,在⾯向对象的术语中,属性就是以前的变量。

功能就是就是实体可以完成的动作,在⾯向对象的术语中,功能就是封装成了函数或⽅法

实体去执行这些动作(功能),各个实体按顺序去执行他们的功能构成了一个过程,这就是面向过程

四、两者的区别

概念 面向过程 面向对象
核心思想 函数 为中心,关注"怎么做"(How) 对象 为中心,关注"谁来做"(Who)
程序组成 一系列函数(过程)的集合 一系列相互作用对象的集合
设计范式 自上而下(Top-Down),逐步细化 自下而上(Bottom-Up),先抽象出对象再组合
核心概念 函数、变量、顺序、分支、循环 类、对象、封装、继承、多态
数据与函数关系 分离。数据由函数处理,在函数间传递 结合 。数据和对数据的操作被封装在对象中

五、联系

面向过程是基础。两者并非水火不容。在一个大型的面向对象系统中,某个具体类的方法完全可以使用面向过程的思维来编写。

面向过程:

优势:性能高、流程直观、适合简单任务

劣势**:**难维护、难扩展、难复用、安全性差

面向对象:

优势:易维护、易扩展、易复用、适合复杂系统

劣势**:**性能略有开销、概念更复杂、设计开销大

相关推荐
冷雨夜中漫步5 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴5 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再5 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
喵手7 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934737 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy7 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
肖永威9 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
TechWJ9 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
枷锁—sha9 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
abluckyboy9 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法