编程范式 |
您所在的位置:网站首页 › 命令式编程与函数式编程 › 编程范式 |
JavaScript
基于原型和头等函数的多范式语言
过程式
面向对象
函数式
响应式*
程序语言具体特性 是否允许副作用 操作的执行顺序 代码组织 状态管理 语法和词法编程范式 命令式 面向过程 面向对象 声明式 函数式 响应式过程式编程 自顶向下程序可细分为模块,模块又可细分为变量和函数。变量用具体数据结构来存储,而函数细化为函数和语句。 结构化编程即顺序结构,选择结构,以及循环结构。 缺点: 数据与算法关联弱 不利于修改和扩充 不利于代码重用 面向对象编程 封装 关联数据和算法 继承 无需重写的情况下进行功能扩充 多态 不同的结构可以进行接口共享、进而达到函数复用 依赖注入* 去除代码耦合 五大原则 单一职责原则SRP(Single Responsibility Principle) 开放封闭原则OCP(Open-Close Principle) 里式替换原则LSP(the Liskov Substitution Principle LSP) 依赖倒置原则DIP(the Dependency Inversion Principle DIP) 接口分离原则ISP(the Interface Segregation Principle ISP) 同样也有缺点:编程过程类似打补丁,并且仅需简单功能也需要移植整个类。 函数式编程 Fitst Class Function聚合转发 Pure Function 优势 可缓存 可移植 可推测 可推理 可并行 Currying Composition Functor可以当作容器的类型,类型支持对容器内元素进行操作,常见的functor : Array(Iterable).map, Promise.then Monad可以去除嵌套容器的容器类型,常见 monad : Array.flatMap Promise.then Applicative直接对两个容器操作 响应式编程 异步/离散的函数式编程 数据流 操作符 过滤 合并 转化 高阶 Observable 观察者模式 迭代器模式 Promise / EventTarget 超集 操作符响应式编程的“compose" 合并 过滤 转化 异常处理 多播Domain-specific language (DSL) : 应用于特定淋浴的语言 HTML SQL 语言运行过程推导式:表示非终结符到(非终结符或终结符)的关系。终结符:构成句子的实际内容。可以简单理解为词法分析中的token。 非终结符:符号或变量的有限集合。它们表示在句子中不同类型的短语或子句。 Parser_LL & LRLL:从左到右检查,从左到右构建语法树 LR:从左到右检查,从右到左构建语法树 总结今天学习了编程范式中的基本问题,内容较多,为日常编程中的低层原理以及编程规范和编程方法,对理解深层编程语法有很大帮助,需要多多记忆。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |