编程范式主要分为命令式编程和函数式编程。两种编程方式的不同更像是方法和函数的区别。
方法:为了达到某种目的而形成指令的集合,可以有返回值,也可以没有返回值
函数:强调两个集合之间的变化关系,强制必须要有返回值。就像数学里y=x+1一样,强调的是y和x两个数据集之间的关系
命令式编程主要使用方法进行编程。
函数式编程主要使用函数进行编程。
命令式编程:本质是指令集的执行
汇编:依托冯.诺伊曼结构,通过预先定好的指令集控制CPU工作。
程序员直接面对的是指令集,直接使用指令集操作计算机元件。
面向过程的语言:在汇编的基础上产生。是对指令的封装
设计程序时,利用顺序结构,条件结构,循环结构将一些指令自定义组合在一起封装成一个方法。
程序员面对的是自定义的方法,而不再是底层的指令。
程序员操作和组织方法,再由方法逐个执行对应的指令。
面向对象的语言:在面向过程的基础上产生,是对方法的再次封装
设计程序时,将多个方法进行组合,形成了方法集。同时赋予这些方法集一些公共的变量,就是属性。而多个属性和多个方法集的组合体就是类(Class)。
程序员面对的是类,通过类本身或者类各种不同的实例去调用方法,而实例就是对象
函数式编程:本质是函数式的运算
代表语言:Haskell
特点:1).函数是一等公民,可以给变量赋值,也可以作为一个参数传给另一个函数
2).只用表达式不用语句,表达式是一个单纯的运算过程,总是有返回值;语句是执行某种操作,没有返回值。函数式编程要求,只使用表达式,不使用语句。也就是说,每一步都是单纯的运算,而且都有返回值。
3).没有"副作用"。每个函数保持独立运算,没有其他行为,不修改其他外部变量的状态。
优点:1).开发简洁
2).易于管理(每个程序保持独立)
3).易于并发编程(不会产生线程安全问题)