gpt4 book ai didi

java - 更好地扩展一个类或直接修改它?

转载 作者:搜寻专家 更新时间:2023-11-01 01:04:33 25 4
gpt4 key购买 nike

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

我的问题与问题相似here但这有点超出我的理解范围。

我知道这对我正在做的事情可能无关紧要,所以我更一般地问这个问题。

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

从阅读您的回答来看,这两种情况似乎都存在争议。我同意创建一个单独的类或接口(interface)通常可能是最好的做法。创建另一个类似乎会变得棘手,因为您仍然需要一种方法来从节点中提取数据。我使用的 BST 实现是通用的,在 Node 类或 BST 类中本身没有任何此类功能,只能返回数据,所以至少我必须添加它。

感谢信息丰富的回复。

最佳答案

要回答的问题是,当您没有可视化数据结构时,“基本功能”是否有用,甚至是令人讨厌的?

您甚至可能根本不想扩展该类。没有更多细节,在我看来你有一个有效的数据结构。您可以创建一个知道如何将其可视化的新类。

也就是说,不是一个知道如何可视化自身的数据结构,而是一个数据结构和另一个知道如何可视化数据结构的类。哎呀 - 你可能会发现它演变成另一个完整的类层次结构,因为你可能需要可视化队列、堆栈等。与你的二叉搜索树无关。

关于java - 更好地扩展一个类或直接修改它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com