面向对象

用一个简单的示例来进行面向过程和面向对象的俩种特性之间的区分

Aspose.Words.0ed437a4-543a-4af4-8349-d84cfd143b73.001

这是一个经典的问题。将大象装进冰箱里分几步。不难看到,我们可以先把冰箱打开,然后我们把大象放到冰箱里面去,再之后将冰箱关上。这是一个简单的三步流程。在这三步中,我们可以观察到,执行操作的对象是谁,是我们。也就是说,这一系列的操作都是由我们去触发的。而这就跟面向过程的核心很接近了。 在面向过程的设计中,我们充当的是一个动作的执行者与一个动作的对象提供者。或者说,我们要做的就是调用一个函数并且为它提供对应的参数。这里的打开冰箱就是我们一个函数调用所需要实现的功能,而打开的这个实现是由函数封装的。冰箱这个对象是由我们提供给函数的。从此中我们可以看到,面向对象,是要求调用者明确其调用的功能,和被传递给调用的方法的对象的。

与此同时,我们来从另外一个视角来看这个问题。在这其中,我们如果认为没有人这个个体呢?我们可以把这个过程看做。冰箱打开了自己,大象走进了一个地方,这个地方是一个冰箱,冰箱本身容纳了一个物体,这个物体是一个大象,冰箱本身关闭了。整个过程看下来,我们发现,我们并没有用到一个额外的人物来帮我我们实现这三个步骤。而是仅仅局限于大象和冰箱这俩个对象来实现我们的功能。而这个就是面向对象的一种思想。

在这里我们将大象和冰箱都抽象为一个对象。冰箱拥有打开,关闭,容纳功能,大象拥有被容纳的功能。通过这样,我们实现了对一个对象的设计。在这种设计下,我们只需要知道一个对象所拥有的功能我们就可以实现对应的操作。

-------------本文结束 感谢阅读-------------