编程范式 | 青训营笔记

164 阅读3分钟

编程范式

一、什么是编程范式?

编程范式指的是一种编程风格或方法,描述了如何构建计算机程序以及程序如何执行。它是一种编程语言的设计方式,它定义了一组规则和约束条件,用于解决常见问题和实现特定类型的应用程序。

image.png

编程范式是每个编程学习者必须具备的常识。通过对编程范式的理解和学习,能够使我们拓宽思路,跳出框架,对各种编程语言的特性有一定的掌握,不局限于单一编程语言。同时,也能对解决常见问题有一定的帮助。

常见的编程范式

image.png

二、命令式编程

通过编写一系列指示计算机执行的命令来描述计算机运行程序的方式。这些命令会被按顺序执行,直到程序运行完毕或者遇到某个条件终止程序运行。

image.png

命令式编程关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。比如想要从数组中大于10的数字,代码实现如下:

const nums = [11,2,98,69,5,7,34,21,3]
const result = []
for(let i = 0; i < nums.length; i++){
    if(nums[i] > 10) result.push(nums[i])
}
console.log(result) //输出结果[11,98,69,34,21]

过程式编程

过程式编程是一种基于过程的编程方式,程序被组织为一系列按顺序执行的步骤或函数,数据通常通过参数传递给这些函数,以便在函数内部进行处理。

洗衣服的例子:

graph TD
打开洗衣机 --> 放衣服 --> 倒洗衣液 -->关上洗衣机 

面向过程就是考虑好每一步的步骤,并按部就班执行。每一步过程都需要仔细设计,最后实现代码。简单来说,过程式编程的两个特点:自顶向下结构化编程。

72c690a5e519a1875331e2549e481ab.png

994784455c9a494b35f7a0ae764d334.png 代码实现如下:

const nums = [11,2,98,69,5,7,34,21,3]
function filterNums(){
    const result = []
    for(let i = 0; i < nums.length; i++){
    if(nums[i] > 10) result.push(nums[i])
    }
}
console.log(filterNums()) //输出结果[11,98,69,34,21]

面向过程式编程,程序流程会很清楚,但也有明显的缺点

  • 数据与算法关联弱
  • 不利于修改和扩充
  • 不利于代码重用

面向对象编程

将数据和对数据的操作封装在一个独立的对象中,并且通过对象之间的交互来实现程序的功能。(OOP)

做蛋糕的例子:

image.png

通过封装、继承和多态等机制,面向对象编程能够提高程序的可重用性可维护性可扩展性,使开发者更加容易地编写复杂的软件系统。

代码实现如下:

给每一个实体创建一个类

image.png

将每一个类实例化

image.png

调用实例的方法

image.png

三、声明式编程

函数式

强调使用函数来处理数据,而不是通过改变状态和修改数据。这意味着函数式编程更加关注代码的表达能力和可读性,而且通常更容易编写出正确性高、可维护性好的程序。

image.png

代码实现如下:

const nums = [11,2,98,69,5,7,34,21,3]
const result = []
function filterNums(){
    const result=[]
    for(let i = 0; i < nums.length; i++){
        if(nums[i] > 10) result.push(nums[i])
    }
    return result
}

console.log(filterNums()) //输出结果[11,98,69,34,21]

响应式编程

用于处理异步数据流和基于事件的程序。它的核心概念是将数据看作是流,程序需要对这些流进行监听,并在数据发生变化时做出相应的反应。

image.png

image.png

四、笔记参考