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


好多次面试都遇到了一个问题:“请你说一下面向对象和面向过程的区别”。所以今天记录一下我个人的理解。之前看到过一个说法,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。简而言之就是“面向过程是编年体,面向对象是纪传体”。

面向过程

以下棋举例。五子棋大家应该十分熟悉,大致规则就是黑子先走,依次下黑子、白子,直到某一方先达到“五子连成一条线”。如果按“面向过程”的逻辑编写一个五子棋游戏程序,那么大致思路是:
1.绘制棋盘;
2.等待用户下一枚黑子并绘制;
3.判断输赢;
4.等待用户下一枚白子并绘制;
4.判断输赢;
5.重回步骤2.
由上可以看出,面向过程考虑的是事件执行的步骤,注重的是事件发生的过程,并且编写逻辑也是基于事件的过程进行编程的,因此称为“面向过程”。

面向对象

仍以五子棋举例。如果以“面向对象”的思维编写一个五子棋游戏程序,那么思路是:考虑整个游戏,则可以将程序划分为三方,一个是黑白双方(这个对象负责接受输入并进行落子,双方行为是一模一样的),一个是棋盘绘制系统(这个对象将进行界面的绘制),一个是输赢判断系统(这个对象负责在用户每次落子后进行输赢判断)。程序实现的逻辑是,第一类对象负责接受用户输入并通知第二类对象进行画面绘制,同时通知第三类对象进行输赢判断并返回结果。可以看出,“面向对象”考虑的是对象在整个程序中会进行的行为,而不是单纯为了完成某个步骤。

后记

1.有的语言是面向过程的,如C语言;有的语言是面向对象的,如Java;这个大家可以自行查询。
2.上述的总结结合了许多查阅到的大佬的观点,感谢这些大佬~

————————————————————
本文同步更新于我的个人公众号,微信搜索“茶迁”或扫描下面二维码关注,后台回复“面向对象与面向过程”即可获得本文推送。欢迎关注~
茶迁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

保温杯拖把风扇

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值