文章来源丨知乎:力扣(LeetCode)
与面向对象相对应的,即存在于早期版本 C 语言中的面向过程。
关于C/C++编程学习,小编给大家提供一个学习交流群,欢迎到访:569268376。
面向过程开发的过程,有点类似于树状调用函数,树状的根节点主程序对函数进行层层调用。
比如,main 函数要进行排序,那就调用 sort,sort 再去调用对应的,然后排好序后要进行输出,再调用输出。所谓面向过程中的过程,指的就是排序,输出这一个个的对应的“行为”,即过程是你每次进行的操作。
面向过程的问题有:
复用性不佳
按过程来的话,不同过程中相似的代码也不好进行复用,前半段的过程中用到的逻辑,在后半段再次使用的话需要再写一遍,如果是相同的逻辑,修改也会出现很多复杂问题。
拓展性不易
举个例子,相同的逻辑,如果要有两份相似逻辑,那在面向过程中,就很多时候需要写两份。
耦合度高
有一个比喻很合适,说面向过程是蛋炒饭,面向对象是盖浇饭,即,面向过程很难将内容剥离开,都混在了一起,要改一个东西,往往会改全文;而面向对象改的时候就改得比较少。
但面向过程也有好处,迭代快速开发,在一些如 48 小时比赛写个程序的,快速迭代,按过程分割就比较适合面向过程。
面向对象,和面向过程的区别在于:
面向对象是以元素,是以事物为主体。只要你能将一样东西抽象成一样物品,就可以作为你一段代码的载体。
比如,MVC,把一样东西的数据,页面,控制,各抽象成一个东西,分开耦合,不同的对象之间只提供对应的接口,联系也基于对应的接口。把每个对象封装成一个类,就是面向对象要做的事情。
首先复用性极佳,你如果要编写重复逻辑,直接使用同一个类就好了。
其次耦合性非常低,修改逻辑时候只需要修改对应的接口内的内容就好了。
同时代码逻辑也更好理解,更好维护。
网友评论