编程范式入门

编程范型,或程序设计法(Programming paradigm),即一类典型的编程风格。

范式(paradigm),有模式和方法的意思。

模式(pattern),主体行为的一般方式,包括科学实验模式、经济发展模式、企业盈利模式等,是理论和实践之间的中介环节。

方法(method),在某种知识的领域上,对探索知识的原则或做法而作之分析。


一、指令式编程(Imperative programming)和声明式编程(Declarative programming)

大部分高级语言都支持四种基本的语句,运算语句循环语句条件分支语句无条件分支语句

指令式编程,需要基本语句描述执行流程,即计算机行为。

声明式编程,描述目标性质,而非流程。

例如,SQL,D3.js都是声明式编程的体现。


二、面向对象编程(Object Oriented Programming)

将代码组织到对象定义中。有时候成为类,它们将具有相关行为的数据分组在一起。

对象(或类)的三大特性,封装继承多态

数据是对象的属性,行为(或功能)是方法

对象结构使其在程序内具有灵活性。

对象可以通过调用数据并将其传递给另一个对象的方法来传递信息。

同时,新类可以从基类或父类接受或继承所有功能。


三、函数式编程(Functional Programming)

基于函数的开发方式,函数将输入映射为输出,从而产生结果。

函数式编程遵循的核心原则:

  1. 函数与程序状态或全局变量无关。它们仅取决于传递给它们的参数进行计算。
  2. 函数试图限制对程序状态的任何更改,并避免更改保存数据的全局对象。
  3. 函数在程序中具有最小副作用。

高阶函数(Higher-order function):将函数作为参数或将函数作为返回值。

回调函数(callback):传递到另一个函数中的函数。

拉姆达函数(lambda):传递给另一个函数,或从另一个函数返回的函数。

装饰器(decorator):增强函数的功能。


四、响应式编程(Reactive Programming)

响应式编程,是面向数据流变化传播的编程范式。

编程语言可以很方便地表达静态或动态的数据流,相关的计算模型会自动将变化的值通过数据流进行传播。

例如,电子表格程序的单元格;MVC软件架构中,允许模型的变化自动反映到视图上,反之亦然。


五、面向切面编程(Aspect Oriented Programming)

面向切面编程,通过预编译方式和运行期间动态代理实现程序功能统一维护。

面向对象编程的延续,是函数式编程的衍生

针对处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合的隔离效果。

例如,通过OOP对“雇员”这样一个业务实体进行封装,通过AOP对“权限检查”这一动作片段进行划分。

猜你喜欢

转载自www.cnblogs.com/bearRunning/p/12213566.html