zoukankan      html  css  js  c++  java
  • 编程范式入门

    编程范型,或程序设计法(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对“权限检查”这一动作片段进行划分。

  • 相关阅读:
    053(二十七)
    【leetcode❤python】141. Linked List Cycle
    【leetcode❤python】13. Roman to Integer
    【leetcode❤python】121. Best Time to Buy and Sell Stock
    【leetcode❤python】119. Pascal's Triangle II
    【leetcode❤python】118. Pascal's Triangle
    【leetcode❤python】110. Balanced Binary Tree
    【leetcode❤python】107. Binary Tree Level Order Traversal II
    【leetcode❤python】102. Binary Tree Level Order Traversal
    【leetcode❤python】101. Symmetric Tree
  • 原文地址:https://www.cnblogs.com/bearRunning/p/12213566.html
Copyright © 2011-2022 走看看