范式编程

113 阅读2分钟
  1. 面向过程:面向过程的核心在于模块化,在实现过程中使用了状态,依赖了外部变量,导致很容易影响附近的代码,代码的可读性比较低,后期的维护成本也比较高。例如C语言

  2. 面向对象编程:面向对象的编程核心在于抽象,提供清晰的对象边界。结合封装、集成、多态特征、降低了代码的耦合度,提升了系统的可维护性。特点:封装、继承、多态。例如:Java,c++,python

面向对象:封装(关联数据与算法)、继承(无需重写的情况下进行功能扩充)、多态(不同结构可以进行接口共享,进而达到函数复用)、依赖注入(去除代码耦合)
  1. 函数式编程:核心在于“避免副作用”,不改变也不依赖当前函数外的数据,结合不可变数据。首先,函数式编程的主要理论基础是 Lambda 演算,它是图灵完备的;其次,函数式编程是抽象代数思维,更加接近现代自然科学,使用一种形式化的方式来解释世界,通过公式来推导世界,极度抽象(比如 F=ma)。在这条路上,很多人都是偏学术风格的,他们关注解决方案是否优雅,如何一层层构建抽象。他们也探索更多的可能,垃圾回收机制就是从这里率先出来的。例如:lisp

    函数式编程优势:可缓存、可移植、可测试、可推理、可并行。
    
    可当做容器的类型,类型支持对容器内的元素进行一系列操作。
    
    去除嵌套容器的容器类型
    
    直接对两个容易操作
    

JavaScript是属于基于原型和头等函数的多范式语言:过程式、面向对象、函数式、响应式。

编程范式包含命令式和声明式,命令式又含面向过程和面向对象,声明式包含函数式和响应式。

  1. 响应式编程:异步/离散的函数式编程。数据流、操作符。其中操作符主要是过滤、合并、转化、高阶。