返回

面向对象设计之“跑 挡 传 切”

闲谈

在之前的文章中,我以小光的开店之路为故事背景,用类比的方式梳理了一些设计模式,并以此展开了一系列文章。反响不错,我也很开心。通过这样一种通俗易懂的方式与大家交流知识,于己是一次知识体系化的过程,于他能让大家更容易地接收知识点。既然如此,那我觉得有必要从更底层的“跑 挡 传 切”的角度去梳理下自己对于面向对象设计的理解,对之前的一些感悟进行梳理和总结,并且去思考对这些知识的进一步运用。

“跑”是指面向对象设计中的“抽象”,即从具体的事物中提取出其共性,形成抽象的概念或模型。

在现实世界中,我们看到各种各样的物体,如汽车、自行车、飞机等。这些物体虽然形状、大小、功能不同,但它们都有一个共同点:它们都是交通工具。我们可以抽象出“交通工具”这个概念,来代表这些物体。

在面向对象设计中,抽象就是将具体的事物抽象成概念或模型的过程。例如,我们可以将“汽车”、“自行车”和“飞机”抽象成“交通工具”类。这个类包含了所有交通工具的共性,如品牌、型号、颜色、速度等属性,以及行驶、转向等方法。

“挡”是指面向对象设计中的“封装”,即把数据的表示和操作细节隐藏起来,只对外暴露必要的接口。

在现实世界中,我们使用各种各样的工具,如锤子、剪刀、螺丝刀等。这些工具都有自己的功能和使用方法。但我们不需要知道这些工具的内部结构和工作原理,只需要知道如何使用它们即可。

在面向对象设计中,封装就是将数据的表示和操作细节隐藏起来,只对外暴露必要的接口。例如,我们可以将“汽车”、“自行车”和“飞机”封装成三个类。每个类都有自己的属性和方法,但我们不需要知道这些类的内部结构和实现细节。

“传”是指面向对象设计中的“继承”,即子类继承父类的属性和方法。

在现实世界中,我们经常看到子承父业的情况。儿子继承父亲的财产、事业和声望。

在面向对象设计中,继承也是如此。子类可以继承父类的属性和方法,并在此基础上进行扩展。例如,我们可以将“汽车”、“自行车”和“飞机”继承自“交通工具”类。这样,子类就继承了父类的所有属性和方法,并且可以根据自己的特点添加新的属性和方法。

“切”是指面向对象设计中的“多态”,即子类可以以不同的方式实现父类的方法。

在现实世界中,我们经常看到不同的人以不同的方式做同一件事。例如,有人喜欢用左手写字,有人喜欢用右手写字。

在面向对象设计中,多态也是如此。子类可以以不同的方式实现父类的方法。例如,我们可以让“汽车”、“自行车”和“飞机”都实现“行驶”方法。但是,每种交通工具的行驶方式不同。汽车行驶在公路上,自行车行驶在自行车道上,飞机行驶在空中。

通过“跑 挡 传 切”,我们可以将复杂的问题分解成更小的、更容易管理的部分。这使得我们可以更容易地理解和设计面向对象系统。