面向过程与面向对象的区别这是经常被问到的话题,下面我就来详解面向过程与面向对象的4大核心区别@mikechen
什么是面向过程?
我先从面向过程来讲起,了解完面向过程,我们再来看面向对象,究竟区别在哪里?
面向过程,简单的来说就是将事物分为不同的步骤,按照步骤去完成编程。
举一个生活的例子,洗衣服,大致分为以下5个步骤:
1)打开洗衣机 2)放衣服 3)放洗衣粉 4)清洗 5)烘干
这就是典型的面向过程,把炒菜这件事拆解为具体的8个步骤,然后按照步骤去执行就是面向过程。
什么是面向对象?
面向对象是对于面向过程功能的一种封装, 面向对象的方法主要是把事物给对象化,包括其属性和行为。
还是举一个生活中的例子,洗衣服,如下图所示:
如果是采用面向过程的话,就会被拆分上面谈到的5个步骤:1)打开洗衣机—》2)放衣服—》3)放洗衣粉—》4)清洗—》5)烘干。
如果是面向对象来设计,只需要调用封装好的两个对象即可:人与洗衣机,然后再分别构建对象的属性和行为,最后再通过对象(人与洗衣机)的方法来交互。
面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
所以说:面向过程比较直接高效,面向对象更易于复用,扩展和维护。
面向对象与面向过程的区别?
最后,来看一下面向过程和面向对象的区别:
1)程序设计
面向过程通常将程序分为一个个的函数,而面向对象编程中通常使用一个个对象来,函数通常是对象的一个方法。
2)复用性扩展性
面向过程:在维护、复用、扩展上比较差。
面向对象由于有三大特性:封装、继承、多态,也就带来了三个特点:易维护、易复用、易扩展,可以设计出低耦合的系统。
3)安全性
面向对象比面向过程安全性更高,面向对象将数据访问隐藏在了类的成员函数中,而且类的成员变量和成员函数都有不同的访问属性,而面向过程并没有合适的方法来隐藏程序数据。
4)性能上
面向过程:性能方面比较高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
面向对象:性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》