这里介绍常见的编程范式,包括:面向过程编程、面向对象编程、函数式编程、反应式编程(响应式编程)。
另外有个分类是命令式(Imperative)和声明式(Declarative),命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。而声明式编程是以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做。
函数式编程是属于声明式编程,其他属于命令式编程。
1、面向过程编程
面向过程编程就是把解决问题的步骤分解开来,用函数实现每一个步骤后串联起来。
面向过程编程的代表性语言是C语言。
2、面向对象编程
面向对象编程是把问题空间和解决空间中的一切都抽象成对象,通过对象描述所有事物和行为,然后对对象加以管理。
面向对象编程的代表性语言包括Java、C++等。
3、函数式编程
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。
Java 8开始支持函数式编程,支持lambda表达式。
4、反应式编程
反应式编程是一种面向数据流和变化传播的编程范式。反应式编程是一种 非阻塞、事件驱动数据流 的开发方案,使用 函数式编程 的概念来操作数据流,系统中某部分的数据变动后会自动更新其他部分,而且成本极低。
与传统的处理方式相比,反应式编程能够基于数据流中的事件进行反应处理。它希望有某种方式能够构建关系,而不是执行某种赋值命令。
反应式编程可以参考Spring Reactor。