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

2021-08-01 02:27:39 来源:网络整理 作者:管理员

原标题:面向对象和面向过程的本质区别

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

多年来,面向过程和面向对象为人所津津乐道,这个可能是程序员当中极其容易勾起的话题。而最容易谈起的就是C是面向过程的语言,C++是面向对象的语言,然而我觉得这个回答有点肤浅,因为C也可面向对象,C++也可面向过程。我们所说的面向过程和面向对象应该是一种思想,不应该限制在编程语言当中。

但是相对而言,C++,Java更容易面向对象,因为他们似乎专门为面向对象而生,解决了软件结构设计的一些难题;而C语言更容易面向过程,因为它是一门系统语言级别的语言,需要较高和较快的性能和速度。

其实很多人并没有意识到自己是在面向对象还是在面向过程,简单来说,虽然写了很多函数和很多个类,但是依然没有编程思想,人云亦云。

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

首先我们来了解一下它们的概念

面向过程:是以过程为中心的编程思想。以我的理解,事物比较简单,可以用线性的思维去解决。有个同事是做mcu固件的,也就是单片机开发,用的是keil编译器,他干的就是不断写函数,单线程梭到底,不会用协程,多线程通信。

面向对象:是一种对现实世界理解和抽象的方法。以我的理解,事物比较复杂,使用简单的线性思维也无法解决。所以它有封装,继承,多态,抽象特征。项目程序代码是以类为单位,方法从属于类。

共同点:面向过程和面向对象都是解决实际问题的一种思维方式,二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把我事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理。

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,比较消耗资源;比如Linux/Unix等一般采用面向过程开发,性能是最重要的因素;很多驱动,单片机mcu开发,涉及到硬件图形渲染,算法封装等,都会采用面向过程。

缺点

1.复用性较低,因为面向过程时逐步进行功能的实现;

2.代码维护更改性低,在面向过程编程中没有面向对象的封装方法,如果出问题得全局进行逐步代码分析;

所以如果是面向过程,你采用多线程,多进程,协程,这些方式通信,其实还是比较痛苦的,需要你有扎实的编码水平和经验,不然一个bug可能会让你的大厦崩塌。

面向对象

优点:

1.易维护,代码可读性好,而且面向对象就是比较容易读懂业务逻辑;

2.易复用,需要的时候new一个类,实例化,可继承,可封装;

3.易扩展,可多态,可以自己重写实例化这个方法;

4.由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护;

5.在复用时直接调用封装好的方法即可,而且安全性相对较高,可以避免不必要的更改引起的错误;

6.允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;

7.安全性较高

缺点:其程序处理的效率比较低,代码容易冗余,经常碰到一个瓶颈后就需要重构一下。

而这里面需要提的是类和对象的关系。类是对象的抽象,实例是类的实现。C++中对象和类有何联系和区别:

它的区别就像

float pi = 3.141592654;

中的float和pi的区别一样。

类是用户自定义数据类型,而对象是这些类定义的具体实例或变量。

什么时候面向过程,什么时候面向对象

以上也简要表达了面向过程和面向对象的场景。就我觉得,如果是做上层应用,做app应用开发来看,有面向对象的思想就已经是水平相当好的程序员了。因为设计模式,很多设计思想的基础就是类,就是面向对象的叠加。只有写过几十万行代码的人才懂面向对象带来的舒畅,如果你仅仅只写过几万行代码,我想即使你用了面向对象的思想,你也体会不到他的优点。

凡事不可勉强,只要突破你的瓶颈后,在一些必须要用面向对象去解决问题你才能获取他的精髓,如果场景中面向对象和面向过程都能解决问题,那么我觉得你是不会体验到他们区别的。

对新手而言,可能面向过程是最经常的。即使你自豪的封装的几个类,那么也不要以为自己是在面向对象了,其实有可能你还是在面向过程。格局打开,尽可能阅读多的代码,去熟悉一些开源和大工程,这样就能感觉到的宇宙的浩瀚和自己的渺小,从而提升自己的水平,不断打破上限。

兔云程序

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

致力于推广编程教程,服务程序员

22篇原创内容

公众号

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

显示全文
为您推荐
红茶的工艺流程是什么 制作红茶要经过哪些步骤
红茶的工艺流程是什么 制作红茶要经过哪些步骤

红茶在中国有着非常高的地位,基本上每个人都是非常喜欢喝红茶。不过红茶并不是非常容易就可以制作出来,其工艺流程非常复杂。首先要经过摘采晾干,萎调除去部分化学物质,然后是发酵,最后才是高温烘培。当然这只是初制品,有些还需要精致处理,最终红茶才可以制作出来,让人们饮用。...

发布时间:2023-08-29 13:00:57

九大行星排列:不同要求排列不同(有些比较常见)
九大行星排列:不同要求排列不同(有些比较常见)

【导读】 九大行星排列:不同要求排列不同(有些比较常见),下面是小编为你收集整理的,希望对你有帮助!九大行星排列按照要求的不同,排列的顺序也会不同,如果我们按照距离太阳的远近来排序,那从近到远依次是水星,金星,地球,火星,木星,土星,天王星,海王星,冥王星。如果按照从远到近那就反过来。如果排列的顺序......

发布时间:2023-08-29 12:01:22

喝洗洁精会死吗 不慎喝了洗洁精怎么办(催吐)
喝洗洁精会死吗 不慎喝了洗洁精怎么办(催吐)

喝洗洁精是不会死的,但是喝洗洁精会对身体造成非常严重的伤害和刺激,但是并不会致死。洗洁精中的主要成分是一些碱性物质以及一些清洁剂,这些成分都是无毒的但是会对消化道内黏膜造成非常严重的灼伤以及刺激,所以不慎喝了洗洁精应该立即催吐。...

发布时间:2023-08-29 12:00:19

怎么把食物拍的秀色可餐:改善背景控制细节(街头美食拍摄)
怎么把食物拍的秀色可餐:改善背景控制细节(街头美食拍摄)

【导读】 怎么把食物拍的秀色可餐:改善背景控制细节(街头美食拍摄),下面是小编为你收集整理的,希望对你有帮助!现如今享受美食已经不止是口腹之欲上的享受了,还包括了眼睛,一些非常漂亮、精致的食物也会引起人们的喜爱,而现如今层出不求的网红餐厅就是将食物的美感发挥到极致,吸引了不少人排队拍照,因此不少人越来越喜欢在......

发布时间:2023-08-29 11:01:18

夏威夷果和香蕉可以一起吃吗,不可以(同食降低营养价值)
夏威夷果和香蕉可以一起吃吗,不可以(同食降低营养价值)

夏威夷果和香蕉,两种常见而美味的水果,相信很多人都吃过。而在某些情况下,夏威夷果和香蕉是会同时出现的,那夏威夷果和香蕉可以一起吃吗?为了健康,接下来就随小编一起去了解看看。...

发布时间:2023-08-29 11:00:13

招行信用卡怎么一键锁卡
招行信用卡怎么一键锁卡

【导读】 招行信用卡怎么一键锁卡,下面是小编为你收集整理的,希望对你有帮助!1、打开手机上安装好的招商银行信用卡APP,点击我的”然后登录账号。2、登录自己的账号后,点击页面中安全”一项。3、安全中心”页面中间有四个工具栏,第一个就是一键锁卡”,点击进入。4、此时会显示该账号......

发布时间:2023-08-29 10:01:18

安徽有什么特产,傻子瓜子、逍遥鸡、口子酒、宣笔等
安徽有什么特产,傻子瓜子、逍遥鸡、口子酒、宣笔等

在中国,每个省、每个市,甚至很多县都有自己特有的产品,安徽省自然不例外,那你知道安徽有什么特产吗?接下来就由小编为大家简单介绍几个。...

发布时间:2023-08-29 10:00:15

板栗是怎么炒的
板栗是怎么炒的

【导读】 板栗是怎么炒的,下面是小编为你收集整理的,希望对你有帮助!1、将板栗洗干净,鼓起的后背用剪刀剪条口子。2、锅中水烧干后加入盐翻炒2分钟。3、盐均匀受热后倒入板栗翻炒,将板栗中的水分完全炒干,盐没有粘附在板栗上即(15分钟左右)。4、加入白糖继续翻炒,翻炒至糖......

发布时间:2023-08-29 09:01:18

土豆发霉打了皮能吃吗,不能吃(吃了会中毒)
土豆发霉打了皮能吃吗,不能吃(吃了会中毒)

在农村,有的家庭每年都会收获许多土豆,因为没卖就放在家中,时间久了就会出现发霉的情形。对此,有人说发霉的土豆,打了皮一样能吃,可这是真的吗,土豆发霉打了皮能吃吗?接下来就随小编一起去了解看看。...

发布时间:2023-08-29 09:00:13

小米影视会员怎么取消续费
小米影视会员怎么取消续费

【导读】 小米影视会员怎么取消续费,下面是小编为你收集整理的,希望对你有帮助!小米影视会员取消续费的具体方法步骤如下:1、连接网络后手机下载影视软件,打开影视软件;2、在登录页面输入”登录账号”和”密码”;3、再打开小米电视的”会员中心”;4、把“自动续费”的开关选项点击“关闭......

发布时间:2023-08-29 08:01:28

风扇噪音大怎么解决,加几滴润滑油(清灰维修)
风扇噪音大怎么解决,加几滴润滑油(清灰维修)

台式电脑很多人家庭都有,而电脑永久了,其风扇会出现很大噪音,那风扇噪音大怎么解决呢?接下来就随小编一起去了解看看。...

发布时间:2023-08-29 08:00:25

南岳是什么山
南岳是什么山

【导读】 南岳是什么山,下面是小编为你收集整理的,希望对你有帮助!1、衡山,又名南岳、寿岳、南山,为中国五岳之一,位于中国湖南省中部偏东南部,绵亘于衡阳、湘潭两盆地间,主体部分位于衡阳市南岳区、衡山县和衡阳县东部。衡山的命名,据战国时期《甘石星经》记载,因其位于星座......

发布时间:2023-08-29 07:01:38