您的位置:首页 > 其它

如何通俗易懂地举例说明「面向对象」和「面向过程」有什么区别?

2019-07-25 14:23 2466 查看

文章来源丨知乎:力扣(LeetCode)

与面向对象相对应的,即存在于早期版本 C 语言中的面向过程。

面向过程开发的过程,有点类似于树状调用函数,树状的根节点主程序对函数进行层层调用。

比如,main 函数要进行排序,那就调用 sort,sort 再去调用对应的,然后排好序后要进行输出,再调用输出。所谓面向过程中的过程,指的就是排序,输出这一个个的对应的“行为”,即过程是你每次进行的操作。

面向过程的问题有:

复用性不佳

按过程来的话,不同过程中相似的代码也不好进行复用,前半段的过程中用到的逻辑,在后半段再次使用的话需要再写一遍,如果是相同的逻辑,修改也会出现很多复杂问题。

拓展性不易

举个例子,相同的逻辑,如果要有两份相似逻辑,那在面向过程中,就很多时候需要写两份。

耦合度高

有一个比喻很合适,说面向过程是蛋炒饭,面向对象是盖浇饭,即,面向过程很难将内容剥离开,都混在了一起,要改一个东西,往往会改全文;而面向对象改的时候就改得比较少。

但面向过程也有好处,迭代快速开发,在一些如 48 小时比赛写个程序的,快速迭代,按过程分割就比较适合面向过程。

面向对象,和面向过程的区别在于:

面向对象是以元素,是以事物为主体。只要你能将一样东西抽象成一样物品,就可以作为你一段代码的载体。

比如,MVC,把一样东西的数据,页面,控制,各抽象成一个东西,分开耦合,不同的对象之间只提供对应的接口,联系也基于对应的接口。把每个对象封装成一个类,就是面向对象要做的事情。

首先复用性极佳,你如果要编写重复逻辑,直接使用同一个类就好了。

其次耦合性非常低,修改逻辑时候只需要修改对应的接口内的内容就好了。

同时代码逻辑也更好理解,更好维护。

最后,关于C/C++编程的学习的话,欢迎点击:C/C++零基础编程学习,一起交流哦!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐