目录
什么是面向过程
面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。
什么是面向对象
在日常生活或编程中,一些较为简单的问题可以用面向过程的思路来解决,直接有效,但是当问题的规模变得更大时,用面向过程的思想是远远不够的。所以慢慢就出现了面向对象的编程思想。世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。
面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个对象在整个解决问题的步骤中的属性和行为。在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这
些对象及对象的能力进行业务逻辑的实现。
区别
先举个例子,来更直观地感受一下二者在具体执行时有什么不同
比如将大象放入冰箱这个问题,我将从面向过程和面向对象两个角度进行分析
面向过程:
①把冰箱门打开
②将大象装入冰箱
③关上冰箱门
也就是说面向过程是将这三步化为函数去执行的
面向对象:
首先要分析谁去发出那些动作,其中“谁”就是对象,就是实体
其中有人,大象,冰箱。然后要对这三个实体增加相应的属性和功能
人要拥有打开冰箱门,将大象放入冰箱,关闭冰箱门的功能(函数)
冰箱要拥有开关门的属性
大象要拥有进入冰箱的功能(函数)
这就是面向对象的特点
面向过程是一种以过程为中心的编程思想。是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。
各自的优缺点
面向过程
优点:
流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。
效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
缺点:
需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。
面向对象
优点:
结构清晰,程序是模块化和结构化,更加符合人类的思维方式
面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
缺点:
开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。
性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。