您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

面向对象和面向过程的区别

时间:2021-04-27 11:20:12  来源:  作者:思睿算个三

在谈论面向对象和面向过程区别之前,我们需要了解一下什么是面向对象和面向过程是什么?总的来说,面向对象和面向过程都只是一种编程思想,对问题不同角度得去分析和解决。

1、思想上的区别

面向过程:简单的来说,面向过程就是将事物分为不同的步骤,根据这些步骤去完成编程。我们可以以五子棋来理解面向过程思想。在面向对象的思路中就是先分析五子棋需要的步骤:

(1) 绘制棋盘

(2) 开始游戏

(3) 黑子下

(4) 绘制黑色棋子

(5) 判断输赢

(6) 白子下

(7) 绘制白色棋子

(8) 判断输赢

(9) 返回步骤(3)

然后,在开发过程中,将以上步骤一步一步地实现

面向对象:而面向对象的设计思路则是将问题分为不同的部分对象,并给对象赋予属性和行为。同样拿五子棋为例,在实现时,需要去分析需要那些对象。

(1) 棋子对象(负责黑白双方落子等行为,仅需要给他们一个颜色属性进行区分即可)

(2) 棋盘对象(负责绘制棋盘,包括棋子的位置绘制)

(3) 规则对象(负责对五子棋进行输赢判断,先后手顺序判断等)

从这个例子中,我们可以发现,面向过程在实现中比较抽象,考虑的方面比较多。而面向对象,用对象直接出发,更加趋向于我们人类的思想

2、维护上的区别

不但在实现上,包括后续的功能维护上,也有很多不同。依旧以上述的五子棋为例。我们如果要在五子棋的游戏中添加一个新的操作,例如悔棋。那么他们双方需要如何去实现呢。

面向过程:如果是面向过程的话,我们不但需要在每个人操作时判断是否有悔棋操作,还可能对前期一系列的步骤进行修改,数据的存储。对棋子的落子位置进行存放等等问题,改动可以说是十分巨大的。

面向对象:而面向对象就不需要有那么大的改动,因为在面向过程的思路中,整个五子棋游戏主要分为:棋子、棋盘、规则三部分组成。进一步分析如果我们加了悔棋,变化在哪里?规则是不会变得、棋子也不会变。唯一会变得就是棋子在棋盘上的布局。我们只需要在棋盘系统中增加一个棋谱回退的功能即可。局部的变化就可实现。

3、从性能上的区别

这个就是比较明显得事情,首先,面向对象在实现中需要类得组成,而类得调用需要实例化,这样开销就比较大,会消耗很多得资源,相对于面向过程在性能上就会低一些。所以在主要考虑性能时,一般会采用面向过程而不是面向对象。

简单的总结一下:

面向过程:性能方面比较高,但在维护、复用、扩展上比较差

面向对象:由于面向对象有三大特性:封装、继承、多态。也就带来了三个特点:易维护、易复用、易扩展。但这也同时消耗了性能,所以性能方面比较低。

 

最后提个小问题:面向过程的性能一定比面向对象高吗?



Tags:面向对象   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  Tags: 面向对象  点击:(9)  评论:(0)  加入收藏
在谈论面向对象和面向过程区别之前,我们需要了解一下什么是面向对象和面向过程是什么?总的来说,面向对象和面向过程都只是一种编程思想,对问题不同角度得去分析和解决。1、思想...【详细内容】
2021-04-27  Tags: 面向对象  点击:(245)  评论:(0)  加入收藏
函数式编程已经存在了60多年,但是到目前为止,它一直都很小众。只有像Google这样的改变游戏规则的企业才会依赖函数式编程,普通程序员对此几乎一无所知。 这种情况很快就要被改...【详细内容】
2020-11-05  Tags: 面向对象  点击:(109)  评论:(0)  加入收藏
何为面向对象编程面向对象编程(Object-oriented Programming,缩写:OOP)是软件工程中一种具有对象概念的编程范式(Programming Paradigm),同时也是一种程序开发的抽象方针,与之...【详细内容】
2020-10-24  Tags: 面向对象  点击:(80)  评论:(0)  加入收藏
面向对象设计自从面向对象编程语言在软件开发中成为主流之后,遵循面向对象技术特点的软件设计工作,也一并发展了起来。首先要提出一个问题,就是设计的工作是要做什么? 它包括的...【详细内容】
2020-10-10  Tags: 面向对象  点击:(87)  评论:(0)  加入收藏
1、优化代码的第一步——单一职责原则单一职责原则的英文名称是Single Responsibility Principle,简称SRP。它的定义是:就一个类而言,应该仅有一个引起它变化的原因...【详细内容】
2020-09-29  Tags: 面向对象  点击:(85)  评论:(0)  加入收藏
前言这一篇开始正式展开讲多态,以及我们为什么要使用多态。多态什么是多态引用百度百科的定义:多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不...【详细内容】
2020-09-21  Tags: 面向对象  点击:(74)  评论:(0)  加入收藏
机器语言这个问题应该从机器语言是怎么工作说起的。在计算机的太古宙时代,在制造一台计算机之前,首先要做的是为它建造一座能够容纳它的大房子。然后还要配接上水电资源,因为它...【详细内容】
2020-09-10  Tags: 面向对象  点击:(76)  评论:(0)  加入收藏
面向对象编程,Object Oriented Progamming,OOP。1、类和对象面向对象编程的两个重要概念:类(class)和对象(object)。类是抽象的概念,对象是具体的东西。在面向对象编程的世界中,一切...【详细内容】
2020-08-17  Tags: 面向对象  点击:(71)  评论:(0)  加入收藏
本节是第四讲的第十四小节,上一节我们为大家介绍了JavaScript对象的基础概念,本节为大家介绍JavaScrip面向对象编程(OOP)以及构造函数等概念。面向对象的程序设计(Object-orie...【详细内容】
2020-08-04  Tags: 面向对象  点击:(64)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条