编程范式
编程范式(Programming paradigm)用于构建并概念化计算机程序的编程风格或方法。一种编程语言可能支持多种编程范式。
1. 指令式编程
指令式编程(Imperative Programming)明确指示计算机如何逐步进行,如何控制流程。比如 汇编语言 就是指令式编程衍生的 非结构化编程语言 ,使用goto或branch tables控制流程。而C语言就是结构化的指令式编程语言,使用if, while, for和switch来控制流程(虽然C语言也有goto指令)。
2. 过程式编程
过程式编程(Procedural Programming)派生自指令式编程,和指令式编程差别不大。由 函数 控制流程。(C语言也是过程式编程语言)
3. 面向对象编程
面向对象编程(Object Oriented Programming,OOP)基于 对象 这一概念的编程范式,每个对象包含数据和指令编码(属性和行为)。这种范式的计算机程序通过对象之间的交互来编码。(Java、C++、Python等)
3.1 特性
- 封装(对象) 封装有两个重要的概念
- 类(Class)定义某事物的抽象特点,包含数据和对数据的操作。
- 对象(Object)类的的实例(Instance)
- 继承(Inheritance)以类或 原型 的形式继承以实现代码的重用和扩展。
- 多态(Polymorphism)由继承所产生的类实例后的对象的相同操作可以有不同的结果。
- 抽象(Abstraction)数据仅对相关的对象可见,可以防止误用。修改代码时只要修改类的内部,而不需要改变外部代码。
4. 声明式编程
声明式编程(Declarative programming)与指令式编程相反,不需要控制流程。而是描述需要的结果。比如SQL、HTML都属于声明式编程语言。
5. 函数式编程
函数式编程(Functional programming)是声明式编程的一种。采用这个范式的计算机程序是通过使用和组合 函数 来构成的。抽象度很高,纯函数式编程甚至没有变量。因为函数内部存在变量,变量状态不确定导致函数的输出结果不确定。因此,函数没有变量输入是确定的,输出的结果也是确定的。函数式编程有一个特点就是:允许函数作为参数输入另一个函数,还允许返回一个函数。