面向对象和面向过程的区别

467 阅读1分钟

面向对象:注重对象。相当于一个指挥官,将工作分配给相对应的对象即可。

image.png

面向对象的主要特征:
  1. 封装性

    封装指的是隐藏内部的实现细节,只对外开放操作接口。接口就是对象的方法,我们只需要知道如何使用接口。以计算机为例,计算机的实现原理相当复杂,作为用户的我们只需要学会操作键盘和鼠标即可。

  2. 继承性

    继承是一个对象继承另一个对象的成员,在不改变另一个对象的前提下进行扩展。

    以动物为例,猫和狗都属于动物,程序中则是猫和狗继承自动物。波斯猫和巴厘猫都继承自猫科,沙皮狗和斑点狗都继承自犬科。他们的继承关系如下图所示。

    image-20210526194322829.png

  3. 多态性

    多态指的是同一个操作作用于不同的对象,会产生不同的执行结果。JavaScript被设计成一种弱类型语言(即一个变量可以存储任意类型的数据),就是多态性的体现。

面向过程:注重具体的步骤。相当于一个执行者,凡是需要自己亲历亲为。

image.png

面向过程的主要特征:

分析解决问题的步骤,利用函数一一实现,依次调用。

  1. 容易出现命名冲突
  2. 难以维护、复用
  3. 不利于中大型项目开发