面向对象和面向过程的区别:
什么是面向过程?
概述: 自顶而下的编程模式
把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。
就是说,在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后
使用各种诸如 if-else、for-each 等方式进行代码执行。
最典型的用法就是实现一个简单的算法,比如实现冒泡排序。
什么是面向对象?
概述: 将事务高度抽象化的编程模式
将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之
间的调用,组合解决问题。
就是说,在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这
些对象及对象的能力进行业务逻辑的实现。
面向对象和面向过程的区别:
面向过程
优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的因素。
缺点: 没有面向对象易维护、易复用、易扩展
面向对象
优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点: 性能比面向过程低
举例(形象化):把大象塞进冰箱需要几步?
按照我们常规的思维惯性,需要三步:
1、打开冰箱
2、把大象塞进去
3、关上冰箱
上述这三个步骤构成了一个过程,这个过程的目的就是把大象塞进冰箱。
过程这个词是不是有点熟悉?没错,与面向对象编程相对应的另一种编程方式就是面向过程编程,以C语言为代表。
还有一种方法把大象塞进冰箱!我们先把这件事情的两个主体找到,一个是大象,一个是冰箱。然后分别分析两个主体各自需要做什么事情。
大象:
1、走进冰箱
冰箱:
1、开门
2、关门
好了,分析好了两个主体需要做的事情,那么把大象塞进冰箱就可以这样划分了:
冰箱执行冰箱1(开门),然后大象执行大象1(走进冰箱),最后冰箱执行冰箱2(关门)。
通过这种方式,依然可以实现把大象塞进冰箱的操作!但是,这种方式是以主体划分的,这个主体就是我们所谓的对象,而采用这种方式编程就是我们常常听到的面向对象编程,以python和java为代表!