声明式编程 与 命令式编程:
- 命令式编程:描述计算机所做行为的编程规范
- 声明式编程:响应式编程属于声明式编程的一种,通过给计算描述目标的性质,让计算机明白目标,而不是处理流程,只告诉计算机想要的结果。
两者的区别:
假设我想要找出一个Int类型数组中的大于10的数,并返回一个由大于10的数字组成的数组。
-
命令式编程:
假如通过命令式编程,我们会通过告诉计算机,包括如何遍历数组、如何使用 if 比较大小、数据类型的定义等。
我们必须为计算机定义,规划好指定的执行流程。
-
声明式编程;
有一个非常常见的声明式编程语言SQL,假如我们按照上述的例子,使用SQL则是这样写:
通过比较可以看出,声明式语言在某些场景下可以极大地简化代码。通过归纳抽离部分,实现对通用代码的简化操作。而且,声明式编程通常是以数据(或者数据流)为导向的,声明式编程通常可以更好的用于处理数据(例如spark中大量使用的scala语言)。但是,当我们写业务逻辑,我们通常必须要写命令式代码,并不能方便地在我们的专项业务里也存在一个可以归纳抽离的实现。