06 理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

a close up of a palm tree with clouds in the background

编程范式:面向过程编程和函数式编程;

面向对象和面向过程的区别,总以为使用面向对象编程语言来做开发,就是在进行面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。(说的就是我!!!!)

这节针对的几个问题:

  1. 什么是面向过程编程与面向过程编程语言?
  2. 为什么说面向对象编程语言比面向过程编程语言更高级?
  3. 有哪些看似是面向对象实际是面向过程风格的代码?
  4. 在面向对象编程中,为什么容易写出面向过程风格的代码?
  5. 面向过程编程和面向过程编程语言就真的无用武之地了吗?

什么是面向过程编程和面向过程编程语言?

回顾面向对象编程和面向对象编程语言:

面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。

面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。

面向过程编程也是一种编程范式或编程风格。它以过程(可以理解为方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为最主要的特点。面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。

面向过程编程语言首先是一种编程语言。它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装),仅支持面向过程编程。

面向对象编程相比面向过程编程有哪些优势?

  • OOP 更加能够应对大规模复杂程序的开发、
  • OOP 风格的代码更易复用、易扩展、易维护。(原因:封装、抽象、继承、多态)
  • OOP 语言更加人性化、更加高级、更加智能