编程范式(一)
一 面向对象编程(Object-oriented Programming):思考的切入点是对象的划分;具有两个基本概念:
- 类:类是对象的类型模板
- 实例:实例是根据类创建的对象
OOP适合大项目和复用性很强、功能很多,有可维护性的;相对面向对象编程还有一个面向过程编程(面向过程:思考的切入点是功能的步骤;适合做一些小的模块)
二 命令式编程(Imperative Programming) :通过编写一条又一条指令去让计算机执行一些动作,这其中一般都会涉及到很多繁杂的细节。命令式代码中频繁使用语句,来完成某个行为。比如 for、if、switch、throw 等这些语句。 命令式编程示例:
const toLowerCase = arr => { const res = []; for (let i = 0, len = arr.length; i < len; i++) { res.push(arr[i].toLowerCase()); } return res; }
三 声明式编程(Declarative Programming):声明式编程表明想要实现什么目的,应该做什么,但是不指定具体怎么做。命令式编程与声明式编程对比
除了命令式编程,其他编程范式大部分属于声明式编程的一种类型,声明式编程示例:
const toLowerCase = arr => arr.map( value => value.toLowerCase(); )
四 函数式编程(Funational Programming):函数式编程是一种编程范式,主要是利用函数把运算过程封装起来,通过组合各种函数来计算结果。函数式编程意味着你可以在更短的时间内编写具有更少错误的代码。函数式编程与命令式编程区别
// 把字符串每个首字母变成大写
const string = 'functional programming is great';
const result = string
.split(' ')
.map(v => v.slice(0, 1).toUpperCase() + v.slice(1))
.join(' ');
console.log(result);
五 响应式编程(RP): 是一个异步编程范式,通过处理数据流来传播在代码中做出的修改。RP代码对任何数据的更改都能做出及时的响应并更新其状态。
六 函数响应式编程(FRP:Function Reactive Programming):这是一种采用函数式编程的基础部件进行响应式编程的编程范式。FRP提出三个原则:单一数据源,状态是只读的,状态修改只能由纯函数来完成。代表应用:Redux. 函数响应式编程