最好扩展一个类或直接修改它?

pri*_*326 4 java class extend

所以我正在为Java中的数据结构创建可视化.我已经开始实现数据结构(二进制搜索树),但我需要为包含的节点类添加一些额外的功能.就约定和最佳实践而言,我是否应该使用此附加功能创建节点的子类,还是应该修改我拥有的内容并将其记录在那里?

我的问题类似于这里提出的问题,但这有点过头了.

我知道这对我正在做的事情并不重要,所以我更多地问这个问题.

编辑:我可能应该更清楚.我的修改实际上并没有改变原始实现,只是添加了几个额外的字段(x和y coords以及一个布尔值来设置是否突出显示该节点)以及访问/修改这些字段的函数.我正在使用的节点类也包含在BST实现中

从阅读你的答案看起来似乎有两个案例的论点.我同意创建一个单独的类或接口可能是最好的事情.创建另一个类似乎可能会变得棘手,因为您仍然需要一种从节点中提取数据的方法.我正在使用的BST实现是通用的,并且在Node类或BST类中没有任何这样的功能只返回数据,所以至少我必须添加它.

感谢您提供丰富的回复.

n8w*_*wrl 12

要回答的问题是,当您没有可视化数据结构时,"基本功能"是否有用,甚至是可取的?

您可能根本不想扩展该类.没有更多细节,在我看来,你有一个有效的数据结构.您可以创建一个知道如何对其进行虚拟化的新类.

也就是说,代替数据结构而不是知道如何自我可视化,您有一个数据结构,另一个知道如何可视化数据结构的类.哎呀 - 您可能会发现它会演变成另一个完整的类层次结构,因为您可能需要可视化队列,堆栈等等.无需使用二进制搜索树.