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

多年来,面向过程和面向对象为人所津津乐道,这个可能是程序员当中极其容易勾起的话题。而最容易谈起的就是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篇原创内容

公众号

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容