Java:实现MutableTreeNode,删除类似的旧方法?

时间:2010-07-30 15:17:13

标签: java swing interface

我越来越接近完全实现JTree来代表Series的集合。 层次结构是Show>季节>插曲。

这些都是类,每个类都实现了MutableTreeNode接口。 当开始这个项目时,我不知道我将需要这个界面,所以我在剧集中定义了像'removeFromSeason'这样的方法,'季节中添加(Episode ep)',...

现在我正在实现这个MutableTreeNode接口,我发现许多方法都重叠了。 所以我想知道我应该如何处理这个问题。例如:add(Episode ep)只是将Episode作为参数,而'insert(MutableTreeNode child,int index)'使用2个参数,即子和索引。在添加剧集中,我刚刚在随机位置将剧集添加到ArrayList。每集都有一个包含剧集编号的变量,所以这不是问题。

如果我完全替换了add方法,我还应该给出Episode的索引,这可能会使ArrayList复杂化。或者我会做双重工作,将剧集和episode.getNumber()作为参数传递,这对我来说似乎很愚蠢。

我也可以同时保留原始方法和新方法,让一方呼叫另一方。这对我来说似乎并不合适。

您对如何处理此问题有何看法?任何评论都表示赞赏:)

伤害

1 个答案:

答案 0 :(得分:1)

当我想实现树时,我提供了TreeModel的实现,并且我在其中执行所有树处理。我从不实现TreeNode或MutableTreeNode(一个节点不需要实现任何接口)。这将业务对象从UI问题中解放出来。当然,当发生变化时,必须以某种方式通知TreeModel。