编程范式|青训营笔记

40 阅读2分钟

编程范式

1.命令式:面向过程、面向对象

2.声明式:函数式、响应式

过程式编程

1.自项向下:程序->模块->变量->数据结构

2.结构化编程:顺序、选择、循环结构

面向对象编程

1.封装:客观的食物封装成具体的类

2.继承:让某一个对象获得另一个对象的属性或方法

3.多态:不同的结构可以进行接口共享,进而达到函数复用

4.依赖注入:在程序运行中,如果对另一个对象调用时,使用外部注入->去除代码的耦合

五大原则:

  • 单一职责原则
  • 开放封闭原则
  • 里式替换原则
  • 依赖倒置原则
  • 接口分离原则

函数式编程

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

一等函数

  1. 可以用变量命名
  2. 可以提供给过程作为参数
  3. 可以由过程作为结果返回
  4. 可以包含在数据结构中

纯函数

优势:可缓存、可移植、可测试、可推理、可并行

柯里化

把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术。

函数组合

函数组合就是将许多细粒度的函数组合起来形成一个管道,数据通过管道一层一层加工后返回最终的结果。 函数组合的调用顺序是从右往

仿函数

  • 可以当做容器的类型,类型支持对容器内元素进行操作 Monad 可去除嵌套容器的容器类型 Applicative 直接对两个容器直接操作

响应式编程:异步/离散的函数式编程

  • 数据流
  • 操作符 1.过滤2.合并3.转化4.高阶

Observable

1.观察者模式2.迭代器模式3.Promise/EventTarget超集

操作符

合并 过滤 转化 异常处理 多播

Monad

去除嵌套的Observable