带你理解面向过程与面向对象

一、前言

如果你总是对面向对象和面向过程傻傻分不清,这篇博客尽量会用通俗的方式来讲解。

二、面向过程

概念

面向过程是一种以过程为中心的编程思想,面向过程编程是基于“冯·诺依曼”模型的。在这种模型中,程序与变量一起存储,程序中包含一系列指令,并把这些指令以函数的方式组织起来。

特性

自顶向下、逐步求精、模块化

优点

性能比面向对象高,因为类调用需要实例化,开销比较大,比较消耗资源。

如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,因为在它们看来性能是最重要的因素。

缺点

没有面向对象易维护、易复用、易扩展

(按照面向过程的思想,在解决问题时,各函数之间是为了这个问题服务;而面向对象的思想,则是站在提出问题的主体的角度去解决问题,可将解决这一具体问题的步骤,抽象为解决这一类问题的方法,以后再遇到类似的问题,可以复用解决思路)

三、面向对象

概念

面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法。通过面向对象的理念,将计算机软件系统能与现实世界中的系统一一对应。

特性

封装、继承、多态

(后续会有文章说明这三个特性)

优点

易维护、易复用、易扩展(在解释面向过程的缺点时有对面向对象的优点进行解释)

缺点

性能比面向过程低

四、面向过程与面向对象的区别

面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。

面向过程思想偏向于我们做一件事的流程,首先做什么,其次做什么,最后做什么。

面向对象思想偏向于了解一个人,这个人的性格、特长是怎么样的,有没有遗传到什么能力,有没有家族病史。

打个比方,分别求出长方形、圆形的周长和面积。

面向过程会以,求解数学题的思路去思考:

  1. 设定长方形的长和宽分别为x和y,圆的半径为r

  2. 确定长方形、圆形的周长和面积的算法

  3. 编写出两个计算周长和面积的函数

  4. 将x、y和r传入相对应的函数,求解长方形、圆形的周长和面积

面向对象会以,描述对象的思路去思考:

  1. 对规则图形的一般属性和性质进行定义,如周长和面积

  2. 在规则图形的基础上,创建长方形,描述长方形的属性和性质

  3. 在规则图形的基础上,创建圆形,描述圆的属性和性质

  4. 分别创建长方形和圆形的对象,调用它们的周长和面积函数,以求解长方形、圆形的周长和面积

面向过程是从细节出发,将问题细化为先后步骤;

面向对象从宏观出发,重在模拟整个情境中各个要素之间的交互。

五、面向对象的特点

在了解其特点之前,咱们先谈谈对象,对象就是现实世界存在的任何事务都可以称之为对象,有着自己独特的个性

属性用来描述具体某个对象的特征。比如小杨身高178M,体重65KG,这里身高、体重都是属性。
面向对象的思想就是把一切都看成对象,而对象一般都由属性+方法组成!

属性属于对象静态的一面,用来形容对象的一些特性,方法属于对象动态的一面,咱们举一个例子,小杨会跑,会说话,跑、说话这些行为就是对象的方法!所以为动态的一面, 我们把属性和方法称为这个对象的成员!

:具有同种属性的对象称为类,是个抽象的概念。比如“人”就是一类,期中有一些人名,比如小明、小红、小玲等等这些都是对象,类就相当于一个模具,他定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化,小明就是人的一个实例化!我们在做程序的时候,经常要将一个变量实例化,就是这个原理!我们一般在做程序的时候一般都不用类名的,比如我们在叫小明的时候,不会喊“人,你干嘛呢!”而是说的是“小明,你在干嘛呢!”

面向对象有三大特性,分别是封装性、继承性和多态性,这里小编不给予太多的解释,因为在后边的博客会专门总结的!

六、举例说明面向过程与面向对象

面向过程——五子棋

1、开始游戏

2、黑子先走

3、绘制画面

4、判断输赢

5、轮到白子

6、绘制画面

7、判断输赢

8、返回步骤

9、输出最后结果

大家可以看出,把上面每个步骤用不同的方法来实现。

面向对象——五子棋

面向对象的设计则是从另外的思路来解决问题。

1、黑白双方,这两方的行为是一模一样的。

2、棋盘系统,负责绘制画面。

3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

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

推荐阅读更多精彩内容

  • 4.类和对象 C++面向对象三大特性:封装、继承、多态 4.1封装 4.1.1意义 将属性和行为作为一个整体,表现...
    一定能心想事成的阅读 243评论 2 1
  • 《富爸爸穷爸爸》笔记及摘录 各人的理解和侧重点不一样,需要的小伙伴,请自己去读,并拥有自己的笔记吧。 普通人能做到...
    沐雨晴天阅读 209评论 0 0
  • 11、 吴国大司马陆抗疾病,上疏说:“西陵、建平,是国家屏障,既处长江上游,两面受敌,如果敌人船舰顺流而下,快如流...
    华杉2009阅读 1,024评论 1 12
  • 书接上文,我抽着烟等着喊我进屋,我一直在想着用什么话来故作玄虚,听见屋里几个人在嘀咕着…… “是不是他从门缝里看见...
    ffc6c2c2fa1c阅读 164评论 1 5
  • 袭卷而来 在未受洗礼的地带 被一道道伤覆盖 它是否懂得 如何去爱 这残骸 颓废的色彩 飘零着在嘶吼声中循徊 你掩面...
    疯王酱阅读 156评论 0 0