[ 编程范式 | 青训营笔记]

80 阅读2分钟

前言

本节课简单介绍了不同编程范式,理论加实践,让我们更好的理解编程范式。

1.编程语言

1.发展

image.png

  • 机器语言
  • 汇编语言
  • 高级语言
    • C/C++
    • lisp
    • javascript

image.png

  • C语言:过程式语言

    • 可对位,字节,地址直接操作
    • 代码和数据分离倡导结构化编程
    • 功能齐全:数据类型和控制逻辑多样化
    • 可移植能力强
  • C++语言:面向对象语言

    • 继承
    • 权限控制
    • 多态
    • 虚函数
  • Lisp:函数式语言

    • 与机器无关
    • 列表:代码即数据
    • 闭包
  • Javascript:基于原型和头等函数的多范式语言

    • 过程式
    • 面向对象
    • 函数式
    • 响应式

2.编程范式

1.定义

具有下属的程序语言特性

  • 是否允许副作用
  • 操作的执行顺序
  • 代码组织
  • 状态管理
  • 语法和词法

2.分类

  • 命令式
    • 面向过程
    • 面向对象
  • 声明式
    • 函数式
    • 响应式

3.面向过程编程

  • 方法
    • 过程式编程(自顶向下)
    • 结构化编程(顺序结构、选择结构、循环结构)
  • 问题
    • 数据与算法关联弱
    • 不利于修改和扩充
    • 不利于代码重用

4.面向对象编程

  • 特点

    • 封装(关联数据与算法)
    • 继承(无需重写的情况下进行功能扩充)
    • 多态(不同的结构可以进行接口共享,进而达到函数复用)
    • 依赖注入(去除代码耦合)
  • 五大原则

    • 单一职责原则SRP
    • 开放封闭原则OCP
    • 里式替换原则LSP
    • 依赖倒置原则DIP
    • 接口分离原则ISP
  • 问题:附带所有的隐含环境

5.函数式编程

  • 特点

    • 函数是“第一等公民”
    • 纯函数/ 无副作用
    • 高阶函数 / 闭包
  • 优势

    • 可缓存
    • 可移植
    • 可测试
    • 可推理
    • 可并行