面向过程与面向对象有什么区别

  目录  

一.什么是面向过程

1.面向过程的缺点

2.面向过程的优点

补:简单介绍代码与代码之间的耦合度

二.什么是面向对象

三.面向过程与面向对象有什么区别


一.什么是面向过程

面向过程主要的特点是注重 实现这个功能的步骤. 第一步干什么,第二步干什么......

另外面向过程也注重 实现功能的因果关系. 因为......所以......

1.面向过程的缺点

        面向过程是每一步与每一步的因果关系,其中A步骤因果关系到B步骤.A和B结合起来形成一个子模块,子模块又和子模块之间因为因果关系结合在一起,假设其中 任何一个因果关系出现问题 (错误),此时 整个系统的运转都会出现问题. (代码与代码之间的 耦合度太高,扩展力差 !)

2.面向过程的优点

        对于小型项目,采用面向过程的方式开发, 效率较高 .可以直接开始干活,写代码来实现功能,并不需要前期对对象提取什么的!


补:简单介绍代码与代码之间的耦合度

代码与代码之间的耦合度就是 代码与代码之间的粘连程度.粘连程度越紧密,耦合度就越高!

举个例子:螺栓与螺母

  • 螺栓与螺母 拧在一起 ,这个时候的 耦合度低 ,因为它们还可以拧开,它们之间存在着接口.
  • 如果螺栓和螺母 拧在一起,再用焊条焊接起来 ,这个时候的 耦合度就比较高 .因为完全分不开.


二.什么是面向对象

面向对象的开发形式更注重对象A,对象B,对象C,然后组合起来的对象ABC或对象CBA!

        采用面向对象的方式进行开发,更符合人类的思想方式.人类就是以"对象"的方式去认识世界的.也正是因为这个,面向对象才成为主流的原因!面向对象就是将现实世界分割成不同的单元,然后 每个单元都实现成对象 ,然后驱动一下,让 各个对象之间协作起来形成一个系统.

举个例子:对象"张三" , 对象"香烟" , 对象"打火机" , 对象"吸烟的场所"

        这4个对象组合在一起就可以模拟一个人的抽烟场景.其中对象"张三"可以更换成"李四",对象"香烟",对象"打火机",对象"吸烟的场所"也可以进行更换!这样的话 耦合度低,并且扩展力很强!

三.面向过程与面向对象有什么区别

从 语言方面 出发:

  • 对于C语言是完全面对过程的.
  • C++是一般面向过程,一半面向对象的,也就是半面向对象的.
  • JAVA语言是完全面向对象的!

在上述面向过程与面向对象的介绍里,已经看的很清楚了他们之间的区别,对吧!那么咱们来看一看实际的例子加深一下理解!

假如现在需要开发一个计算机!

  • 如果用 面向过程 的方式来开发一个计算机!那么就不存在任何一个部件,所有的东西都融合在一起,成为了一个一体机!如果说计算机的某个地方坏掉了,那么这整个计算机都坏掉了,就直接废掉挂闲鱼了(估计咸鱼挂不上!哈哈哈哈哈)!

  • 如果用 面向对象 的方式来开发这个计算机!那么内存条就一个对象,主板是一个对象,CPU是一个对象,硬盘等等电脑任何一个部件都是一个对象!.然后把所有对象组合在一起形成了电脑!这个是个哪个地方坏掉了,我们就找到这个对象,然后换掉那个对象就欧克了!例如内存条快掉了,就换个内存条就木有问题了啦!这样的耦合度就很低,扩展力很强的有木有!

再简单举个例子!咱们洗衣服是很常见的对吧!

  • 面向过程 时:我们需要第一步脱衣服 ------> 第二步放到盆里 ------> 第三步倒洗衣粉 ------> 第四步倒水浸泡 ------> 第五步手洗衣服 ------> 第六步清洗衣服 ------> 第七步拧干 ------>第八步晾衣服
  • 而 面向对象 时:脱衣服 ------> 找到对象全自动洗衣机(该洗衣机具备洗衣服的功能) ------> 晾衣服

这样一比较,是不是就发现自己爱上面向对象了!简直是神操作!

        面向对象思想的特点就是 不断的创建对象 ,再使用该对象 调用功能 !面向对象虽然是着重对象的,但是他也是 基于面向过程 的!就比如洗衣服,找到了对象全自动洗衣机,但是该洗衣机具备的洗衣服功能是面向过程的,需要代码来实现这个洗衣功能!

(小编也在努力学习更多哟!以后会多多分享哒!)

                              

希望对友友们有所帮助!!!!

  • 31
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

naoguaziteng

谢谢友友的打赏!一起努力吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值