写点什么

前端三板斧头 --- 编程范式

作者:知心宝贝
  • 2023-04-17
    江苏
  • 本文字数:1707 字

    阅读完需:约 6 分钟

前端三板斧头 --- 编程范式

一、前言



计算机编程语言的发展经历了以下几个阶段:

  1. 机器语言阶段(1940 年代-1950 年代):计算机最初只能通过二进制代码进行编程,这种编程方式称为机器语言。程序员需要手动输入二进制指令来完成任务,非常繁琐和容易出错。

  2. 汇编语言阶段(1950 年代-1960 年代):为了简化机器语言的编写,人们发明了汇编语言。汇编语言使用助记符来代替二进制指令,使得编程更加方便和易读。

  3. 高级语言阶段(1960 年代-1970 年代):为了进一步简化编程,人们开始使用高级语言进行编程。高级语言使用人类能够理解的语法和结构来编写程序,使得编程变得更加抽象和易于维护。

  4. 面向过程编程阶段(1970 年代-1980 年代):将程序视为一系列顺序执行的操作,每个操作都是独立的、无状态的函数。这种编程方式注重程序结构的清晰和简洁,使得程序易于理解和维护。同时,面向过程编程也有助于提高程序的性能和可移植性,因为它避免了使用面向对象编程中的对象、类、继承等复杂结构,减少了程序的内存开销和运行时间。其中比较有代表性的语言包括 C 语言等。

  5. 面向对象编程阶段(1980 年代-现在):面向对象编程强调将程序视为一组对象的集合,通过定义和调用对象的方法来实现目标。面向对象编程注重代码的复用和可维护性,使得程序设计更加灵活和模块化。其中比较有代表性的语言包括 Java、C++、Python 等。

  6. 函数式编程阶段(1990 年代-现在):函数式编程强调将计算视为函数的运算,避免副作用和共享状态,提高代码的可读性和可维护性。函数式编程适用于处理数据密集型和并发性问题,其中比较有代表性的语言包括 Lisp 等。

  7. 多范式编程阶段(1990 年代-现在):同时支持多种编程范式的编程语言和框架的发展阶段。这些编程语言和框架通常可以同时支持面向过程、面向对象、函数式、并行、响应式和其他编程范式,以便程序员根据实际需求选择合适的编程方式进行开发。其中比较有代表性的语言包括 JavaScript 等。

二、面向过程编程

var students = []; // 用来存储学生信息的数组
function addStudent(name, age, grade) {}
function deleteStudent(id) {}
function updateStudent(id, name, age, grade) {}
function queryStudent(id) {}
复制代码

在这个例子中,我们使用一个全局数组 students 来存储学生信息,每个函数都可以直接访问和修改这个数组。这些函数都是独立的,每个函数都接收输入参数并返回输出结果,它们使用共享的状态(即 students 数组)来实现对学生信息的管理。

三、面向函数编程

function addStudent(name, age, grade) {  // 添加一个学生到数据库中}
function deleteStudent(id) { // 从数据库中删除指定id的学生}
function updateStudent(id, name, age, grade) { // 更新指定id的学生的信息}
function queryStudent(id) { // 查询指定id的学生信息}
复制代码

在这个例子中,我们定义了四个函数,每个函数都代表一个操作,这些函数都是独立的,每个函数都接收输入参数并返回输出结果,它们没有共享的状态或行为。同时,这些函数与具体的学生管理系统实现细节无关,可以在任何地方被调用。


这两个例子的区别在于对状态的处理方式。面向函数编程避免了使用共享状态和副作用,每个函数都是独立的、无状态的。而面向过程编程使用共享状态来实现程序功能,每个函数都可以访问和修改共享状态。

四、面向对象编程

class Student {  constructor(id, name, age, grade) {    this.id = id;    this.name = name;    this.age = age;    this.grade = grade;  }  add(name, age, grade) {  }  delete(id) {  }  update(id, name, age, grade) {  }  query(id) {  }}
const students = []; // 用来存储学生信息的数组
复制代码

与面向函数和面向过程不同的是,面向对象编程强调对象的行为和状态的封装,以及继承和多态等特性。在这个示例中,我们使用 Student 类来表示学生对象,每个学生对象都有自己的属性和方法,并且可以通过调用类方法来进行操作。这样做使得程序更加易于扩展和维护,同时也符合面向对象编程的习惯。

另外,使用面向对象编程的好处在于可以将程序分解为独立的、可复用的对象单元,并组合这些对象来实现程序功能。这种方式使得代码更加模块化和可读性更高,同时也使得程序更加灵活和易于扩展。

发布于: 刚刚阅读数: 3
用户头像

知心宝贝

关注

公众号:穿越计算机的迷雾 2022-03-07 加入

生于尘埃 溺于人海 死于理想高台

评论

发布
暂无评论
前端三板斧头 --- 编程范式_JavaScript_知心宝贝_InfoQ写作社区