面向对象和面向过程最本质的区别是什么?

发布时间:2022-02-21 / 作者:清心寡欲


举个生活中的例子,如何把大象放进冰箱里。这个任务确定需要三个步骤来解决。1、把冰箱打开,2、把大象装进去,3、把冰箱门关上,每一个过程都有阶段性的目标,把冰箱打开,打开后得到的是冰箱。把大象装进去,开门后得到的是里面装好大象的冰箱。把门关上,打开门,装好大象,获得关好门的冰箱。依次完成这些过程,就能把大象装进冰箱里。面向对象是把构成问题的事务分解成各个对象。建立对象的目的不是为了完成一个步骤,而是为了叙述某个事物在整个解决问题步骤当中的行为。简单地说,就是构造一个对象模型。将数据与方法组织在一起,那么,将上述的案例用面向对象的思想实现一下,就是这样一个流程。为了把大象装入冰箱,需要做三个动作,或者是叫做行为,每个动作有一个执行者。他就是对象。冰箱就是一个对象。具体的三个步骤。1、冰箱你给我把门打开,2、冰箱你给我把大象装进去。3、冰箱你给我把门关上。依次做这些动作,就能把大象装入冰箱里。面向对象是一个模型化的,你只需要抽象出一个类。比如本例中的冰箱,而冰箱怎么开门,冰箱怎么装大象。冰箱怎么关门等功能封装在冰箱的实际方法当中。

从这个例子当中,我们可以看出,面向过程是具体化、流程化的,解决一个问题,你需要一步一步的分析,一步步的实现。但设计人员只考虑实现客户的需求,不考虑以后的扩展。一旦客户的需求有变化,那么需要修改的代码量就很大,耗时耗力。而面向对象的程序设计,许许多多东西都是独立的。强调的是对象的重复使用,数据和数据相关的操作被包装成对象,每个对象是完整独立的。一个对象做好一件事情,对象内部的细节,外面世界不关心也看不到。同时,不同种类的对象之间的依赖性降低,这将降低程序之间的耦合性。而所有的这些都有助于达成一个崇高的目标,就是可重用性。实际上,面向对象是在面向过程的基础上,两种思想不是非彼即此的对立关系。不能说面向对象取代了面向过程,如果用面向对象,就要把一个软件任务划分成两个层次。那么,面向对象是解决第一层次的问题,面向过程是解决第二层次的问题。只有两个层次上的任务都完成之后,才能说完成了整个程序的设计任务。


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。

猜您喜欢