面向对象与面向过程的区别(4大核心区别)

面向对象与面向过程的区别(4大核心区别)-mikechen

面向过程与面向对象的区别这是经常被问到的话题,下面我就来详解面向过程与面向对象的4大核心区别@mikechen

什么是面向过程?

我先从面向过程来讲起,了解完面向过程,我们再来看面向对象,究竟区别在哪里?

面向过程,简单的来说就是将事物分为不同的步骤,按照步骤去完成编程。

面向对象与面向过程的区别(4大核心区别)-mikechen

举一个生活的例子,洗衣服,大致分为以下5个步骤:

1)打开洗衣机

2)放衣服

3)放洗衣粉

4)清洗

5)烘干

这就是典型的面向过程,把炒菜这件事拆解为具体的8个步骤,然后按照步骤去执行就是面向过程。

 

什么是面向对象?

面向对象是对于面向过程功能的一种封装, 面向对象的方法主要是把事物给对象化,包括其属性和行为。

还是举一个生活中的例子,洗衣服,如下图所示:

面向对象与面向过程的区别(4大核心区别)-mikechen

如果是采用面向过程的话,就会被拆分上面谈到的5个步骤:1)打开洗衣机—》2)放衣服—》3)放洗衣粉—》4)清洗—》5)烘干。

如果是面向对象来设计,只需要调用封装好的两个对象即可:人与洗衣机,然后再分别构建对象的属性和行为,最后再通过对象(人与洗衣机)的方法来交互。

面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。

所以说:面向过程比较直接高效,面向对象更易于复用,扩展和维护。

 

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

最后,来看一下面向过程和面向对象的区别:

1)程序设计

面向过程通常将程序分为一个个的函数,而面向对象编程中通常使用一个个对象来,函数通常是对象的一个方法。

 

2)复用性扩展性

面向过程:在维护、复用、扩展上比较差。

面向对象由于有三大特性:封装、继承、多态,也就带来了三个特点:易维护、易复用、易扩展,可以设计出低耦合的系统。

 

3)安全性

面向对象比面向过程安全性更高,面向对象将数据访问隐藏在了类的成员函数中,而且类的成员变量和成员函数都有不同的访问属性,而面向过程并没有合适的方法来隐藏程序数据。

 

4)性能上

面向过程:性能方面比较高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。

面向对象:性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法