面向过程与面向对象的比较详解

简介

面向过程和面向对象是两种截然不同的思维方式。面向过程的编程产生在前,面向对象的编程产生灾后,所以面向对象的编程一定继承前者的一些优点,并摒弃前者存在的一些缺点,这两在发展和演变过程中,也相互借鉴,相互融合,来吸收对方的优点,所以并不能断言谁好谁不好,只有更加合适的利用。

面向过程

什么是面向过程的编程:

面向过程的编程中最常用的分析方法是“功能分解”。也就是将用户的需求先分解成模块,然后把模块分解成一个一个的函数,直到分解成一条条程序语句为止。

面向过程设计把重点放在解决问题的功能模块划分上,将数据和操作这些数据的函数分开,数据处于次要地位,而过程即模块划分是关心的焦点。

理解:

面向过程编程更加关注的是“程序的逻辑流程”,是一种“执行者”思维,适合编写小规模的程序,面向过程适合简单、不需要协作的事务。(强调于程序过程)

举例:

面向过程成产汽车,需要关注的点太多了,细化到每一个零件上,所需要的信息量太大,但是一但实现流水线,就能快速的完成组装,效率极高,花都工厂一小时可生产60辆汽车。但是流水线的问题也很明显,如果一个零件组装出问题,一条线就不能继续生产,一条线不能生产则,一个车间不能生产。

优点:

  1. 程序顺序执行,流程清晰明了。
  2. 性能比面向对象高

缺点

  1. 主控制程序承担了太多的文物,各个模块都需要主控制程序进行控制和调度,主控和模块之间的承担任务不均衡;
  2. 如果数据结构发生变化,相关的函数必须跟着变化;
  3. 总体设计时要分析的问题量大、面广、复杂;
  4. 课题组成之间的借口信息多、协调难、效率低;
  5. 可复用性差;

面向对象

什么是面向对象的编程:

是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

理解:

面向对象更加关注的是“软件中对象(数据和功能捆绑在一起)之间的关系”,是一种“设计者”思维,适合编写大规模的程序。(强调于对象)

举例:

面向对象生产汽车,关注的点是如何将各个零件组合起来,如汽车一般是由发动机、底盘、车身、电器设备四个基本部分组成。所以一个工厂会有四个生产车间即冲压、焊装、涂装、总装、不同车间各自工作又相互关联,但最后还是要将零件组装起来。

优点:

  1. 面向对象编程将数据和操作数据相关的方式封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。
  2. 更好的可重用性
  3. 更好的可扩展性
  4. 更好的可管理性

缺点:

  1. 性能比面向过程低

总结:

面向对象可以帮我们从宏观上把握,从整体上分析整个系统。但是具体到实现部分的围观操作,仍然需要面向过程的思想去处理,所以不要将面向过程和面向对象对立起来,他们是相辅相成的,面向对象离不开面向过程。简单问题可以使用面向过程,复杂问题使用面向对象把握,使用面向过程处理。

PS:下一篇将关于面向对象的特点以及类

你可能感兴趣的:(面向对象,面向过程,优缺点)