编程范式

147 阅读4分钟

常见的编程范式: 过程化编程 / 命令式编程 事件驱动编程 面向对象编程 函数式编程

  1. 过程化编程 / 命令式编程 过程化编程的步骤: 我们必须将带解决问题的解决方案抽象为一系列概念化的步骤。 通过编程的方法将这些步骤转化成程序指令集(算法),而这些指令按照一定的顺序排列,用来说明如何执行一个任务或解决一个问题。这意味着,程序员必须要知道程序要完成什么,并且告诉计算机如何进行所需的计算工作,包括每个细节操作。简而言之,就是把计算机看成一个善始善终服从命令的装置。 所以在过程化编程中,把待解问题规范化、抽象为某种算法是解决问题的关键步骤。其次,才是编写具体算法和完成相应的算法实现问题的正确解决。 过程化语言适合解决线性的算法问题,强调“自上而下”、“精益求精”的设计方式。

  2. 事件驱动编程 在过程式的程序设计中,代码本身就给出了程序执行的顺序,尽管执行顺序可能会受到程序输入数据的影响。在事件驱动的程序设计中,程序中的许多部分可能在完全不可预料的时刻被执行。往往这些程序的执行是由用户与正在执行的程序的互动激发所致。 事件驱动常常用于用户与程序的交互,通过图形用户接口(鼠标、键盘、触摸板)进行交互式的互动。当然,也可以用于异常的处理和响应用户自定义的事件等等。

  3. 面向对象编程 面向对象的程序设计包括三个基本概念:封装性、继承性、多态性。 面向对象的语言通过类、方法、对象和消息传递,来支持面向对象的程序设计范式。 对象:面向对象的程序设计的抽象机制是将待解决问题抽象为面向对象的程序中的对象。利用封装是每个对象都拥有个体的身份。程序便是成堆的对象,彼此通过消息的传递,请求其他对象进行工作。 类:对象是类的实体。类是相似对象的集合。类中的对象可以接受相同的消息。即,类包含和描述了具有共同特性(数据元素)和共同行为(功能)的一组对象。 封装:封装就是把数据和行为结合在一个包中,并对对象的使用者隐藏数据的实现过程。信息隐藏是面向对象编程的基本原则,而封装是实现这一原则的一种方式。封装使对象呈现出“黑盒”特性,这是对象再利用和实现可靠性的关键步骤。 接口:接口不是类,而是对符合接口需求的类所作的一套规范。接口说明类应该做什么但不指定如何作的方法。一个类可以有一个或多个接口。 继承:继承的思想就是允许在已存在类的基础上构建新的类。一个子类能够继承父类的所有成员,包括属性和方法。 继承的主要作用:通过实现继承完成代码重用。继承是一种规范的技巧,而不是一种实现的技巧。 多态:多态提供了“接口与实现分离”。 多态不但能改变程序的组织架构和可读性,更便利与开发出“可扩充”的程序。 继承是多态的基础,多态是继承的目的。 合理的运用基于类继承的多态、基于接口继承的多态和基于模版的多态,能增强程序的简洁性、灵活性、可维护性、可重用性和可扩展性。

  4. 函数式编程 函数式编程即是在软件开发的工程中避免使用共享状态、可变状态以及副作用。 函数式编程中整个应用由数据驱动,应用的状态在不同纯函数之间流动。 与偏向命令式编程的面向对象编程而言,函数式编程其更偏向于声明式编程,代码更加简洁明了、更可预测,并且可测试性也更好。