面向对象设计:类别本质与多维分类探讨

0 下载量 41 浏览量 更新于2024-08-29 收藏 321KB PDF 举报
"颠覆传统-面向对象的设计思想"是一篇由火龙果软件工程技术中心编写的深入探讨面向对象编程核心概念的文章。文章从我们初次接触面向对象编程时常见的"类"概念入手,质疑了传统观点将其简单视为数据结构的封装形式,指出这种理解过于肤浅。 文章首先追溯了类这一术语的起源,指出"类"在英语中的含义是指种类或分类,源自分类学的概念,用于组织和区分对象。作者通过生物学的例子,解释了如何根据特定标准将生物分类,如将所有生物分为动物和植物,再进一步细分为鱼类、爬行动物等。然而,这并不意味着面向对象的分类标准总是那么简单,因为不同的分类依据可能导致完全不同的结果。 接着,作者引入了一个具体的编程示例,试图创建一个弹涂鱼类(Goby)。通过继承关系,先是定义了基本的鱼(Fish)类,然后扩展出可爬树的鱼(ClimbableFish)类,最后将弹涂鱼(Goby)归为爬树鱼类别。然而,当增加新的分类标准——是否能吃,问题变得复杂。作者提出是否所有的能吃的鱼都必须会爬树,这就引出了继承层次的问题:是让EatableFish从ClimbableFish派生,还是从更基础的Fish类派生。 这篇文章深入剖析了面向对象设计中类的本质和灵活性,强调了分类标准对设计决策的重要性,以及如何在实际编程中处理多维度的分类和继承关系。它提示读者,面向对象不仅仅是关于数据和操作的封装,更是关于如何通过抽象和继承来组织复杂系统的思考方式。作者通过这个例子展示了面向对象设计中如何应对不断变化的需求和复杂性,从而引发读者对面向对象设计哲学的深度思考。