背景
面向过程编程:
(Procedure Oriented)是一种以过程为中心的编程思想,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。(Procedure Oriented)是一种以过程为中心的编程思想。
特性:模块化 流程化
优点:性能比面向对象高, 因为类调用时需要实例化,开销比较大,比较消耗资源;
单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
函数式编程:
函数式编程是一种编程方式,它将电脑运算视为函数计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接收函数当做输入(参数)和输出(返回值)。
主要思想:把运算的过程尽量携程一系列嵌套的函数调用。
面向对象编程:
面向对象是按照人们认识的客观事件的系统思维方式,采用基于对象(实体)的概念建立的模型,模拟客观世界的分析、设计、实现的软件的办法。通过面向对象的理念使得计算机软件系统能与现实的世界中的系统意义对应。(把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。)
面向对象的编程
特性:抽象、封装、继承、多态
优点:易维护、易复用,易拓展,由于面向对象有封装、继承、多态的特性。可以设计出低耦合的系统,使得系统更加灵活、更易维护。
缺点:性能比面向过程低