Skip to content

ProgrammingParadigm

kcp edited this page Jul 13, 2020 · 1 revision

title: 编程范式 ProgrammingParadigm date: 2019-10-19 17:04:34 tags: categories:

目录 start

  1. 编程范式
    1. 命令式编程
    2. 函数式编程
    3. 响应式编程
    4. 逻辑式编程

目录 end|2020-04-27 23:42|


编程范式

  • Imperative Programming (IP) 命令式编程
  • Functional Programming (FP) 函数式编程
  • Logic Programming (LP) 逻辑式编程

命令式编程

编写改变状态的一条条命令

函数式编程

  • 函数式语言他把计算本身当成最重要的概念。函数式语言和过程式语言一样对值进行操作,但他不会修改输入,而是像数学函数一样返回新值
    • 函数被看成是一个小处理机,输入值并输出值,他们没有自己的状态,并且将他们和任何外部状态绑定在一起也没有意义

Groovy带一点函数式风格,Scala对FP的利用更为充分,Clojure是纯粹的函数式语言,没有丁点儿面向对象特性

命令式和函数式

  • Java是典型的命令式语言,命令式语言把程序的运行状态建模为可修改的数据,用一系列的指令来改变状态。因此在命令式语言中,程序状态是核心概念
  • 命令式语言主要分为两类,一种是面向过程语言,一种是面向对象语言
    • 面向过程:Basic Fortran 这种语言将代码和数据完全分离开,有简单的代码操作数据范式
    • 面向对象:数据和代码(方法形式)封装在对象中,面向对象语言中或多或少会存在元数据(比如:类信息)引入的额外结构

响应式编程

ReactiveX

组合异步的序列 设计模式是 观察者模式的扩展, 数据结构是序列串流, 避免了并发, 是非阻塞的,常见于UI层

数据流驱动

异步 非阻塞 不是同步非阻塞 (当时不阻塞后续回调) 而是异步

多路复用

逻辑式编程

Summary

Clone this wiki locally