编程范式 | 青训营笔记

89 阅读2分钟

编程范式 | 青训营笔记

1. 程序语言特性

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

2. 常见编程范式

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

3. 过程式编程

过程式编程(Procedural programming)的核心在于模块化,在实现过程中使用了状态,依赖了外部变量,导致很

容易影响附近的代码,可读性较低,后期的维护成本也较高。

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

4. 面向对象编程

面向对象编程(Object-oriented programming)的核心在于抽象,提供清晰的对象边界。结合封装、集成、多态特性,降低了代码的耦合度,提升了系统的可维护性。

4.1 特点

  • 封装
  • 继承
  • 多态
  • 依赖注入

4.2 五大原则

  • 单一职责原则SRP
  • 开放封闭原则OCP
  • 里氏替换原则LSP
  • 依赖倒置原则DIP
  • 接口分离原则ISP

4.3 问题

总是附带着所有它需要的隐含环境

5. 函数式编程

函数式编程(Functional Programming)的核心在于“避免副作用”,不改变也不依赖当前函数外的数据。结合不可变数据、函数是第一等公民等特性,使函数带有自描述性,可读性较高。

5.1 特点

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

5.2 优势

​ 可缓存、可移植、可测试、可推理、可并行

6. 响应式编程

响应式编程是一种基于异步数据流驱动、响应式、使用声明式范式的编程模型,需要遵循一定的响应式编程开发规范,并且有具体的类库实现。响应式编程基于数据流而不是控制流进行业务逻辑的推进。