关于语言的过程和对象,你究竟想面向谁?


这个问题,我想很多人都有过类似的疑问,面向过程和面向对象之间,究竟有什么区别?谁好谁坏呢?


介绍

  • 面向过程:将问题分成一个个步骤,用函数将每个步骤依次实现的过程。

  • 面向对象:将问题分成一个个对象,每个对象就类似一个行为,在这个问题里,需要用到什么动作或行为,就调用哪个对象。

什么?还是感觉有点懵?

没关系,下面给大家举个例子:

真人和人偶的区别,真人的如果需要用到手,那么会先有个想法,然后经过大脑,大脑再根据神经传递到手,手才能动(面向过程);而人偶,如果需要用到手,人偶会直接把手安装上去,就可以用了,在这里人偶的手相当于一个对象,需要用的时候就拿过来组装即可(面向对象)。


特点

  • 面向过程:由于面向过程需要将行为动作流程化才能进行,所以导致面向过程解耦性低,不易复用和拓展,但是相对于面向对象来说,不需要另外创建类实例,所以效率较高,一般用面向过程的计算机语言有,C语言

  • 面向对象:由于面向对象可以将行为动作模块组件化,需要用到才组装上去,所以面向对象的解耦性更高,更易复用和拓展,但是由于有类需要创建实例化,所以相对面向过程来说,效率低,一般用到的面向对象的计算机语言有Java,C++,C#,JavaScript等

面向对象在计算机语言中有三大特性,封装性、继承性和多态性,皮仔会在后面的博客着重介绍这三个特性。


总结

面向过程

优点:执行效率高,因为类调用的时候需要实例化,资源开销较大,但面向过程不需要调用类,所以面向过程相对来说更加适合用作单片机、嵌入式、Linux/Unix等性能为主的开发。

缺点:不易维护、复用和扩展,面向过程环环相扣,每一步都需要上一步走完才可以走。

面向对象

优点:相对于面向过程来说,更易于维护、复用和拓展,因为面向对象的每个类都是一个个体,互不干扰,这方面主要体现在面向对象的三个特性:封装、继承和多态性。

缺点:执行效率较低,由于有类的调用,需要实例化,所以资源开销会较大,一般适合APP、Web开发等。


陈皮仔技术专栏:

CSDN:https://blog.csdn.net/Mr_Lester
简书:https://www.jianshu.com/u/2c67d6b3badc
掘金:https://juejin.im/user/5e7423dd5188254935094193/posts
知乎:https://www.zhihu.com/people/chenpizai/posts

关注 “陈皮仔” 公众号,回复关键字"皮友java教程",即可获得无价之宝—>java教程,从此青铜到王者不是梦!


发布了6 篇原创文章 · 获赞 41 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Mr_Lester/article/details/105108501