美文网首页C语言
知乎教你一招:如何通俗易懂地举例说明「面向对象」和「面向过程」有

知乎教你一招:如何通俗易懂地举例说明「面向对象」和「面向过程」有

作者: 1cbd7f94d3ea | 来源:发表于2019-07-25 14:24 被阅读6次

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

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

    关于C/C++编程学习,小编给大家提供一个学习交流群,欢迎到访:569268376。

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

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

    面向过程的问题有:

    复用性不佳

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

    拓展性不易

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

    耦合度高

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

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

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

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

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

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

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

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

    相关文章

      网友评论

        本文标题:知乎教你一招:如何通俗易懂地举例说明「面向对象」和「面向过程」有

        本文链接:https://www.haomeiwen.com/subject/tasqrctx.html