我知道这里有人问过这个问题:Java tree data-structure?
但是在Java中实现树的最佳实践是什么呢?在上面链接的问题中,投票第二多的答案提到了TreeModel,但在评论中有人说这样做不是一个好的编码实践。这有什么道理吗?(我不理解swing和非swing)使用TreeModel是常见的做法吗?
发布于 2013-05-23 21:41:03
你提到的评论是这样的:
我会避免在与Swing无关的函数上使用Swing库。这是一个糟糕的编码实践。你永远不会知道Swing是如何实现它们的树的,它们的依赖关系是什么,以及这在未来会发生什么变化。Swing不是一个实用程序库,而是一个UI库。
根据我的经验,Swing是一个复杂的UI工具包,但所有的model classes,如TreeModel或TableModel,都是为支持跨平台UI而定制的。也许名字模型表明,这些类封装了这些数据结构的独立内部工作--但像ButtonModel这样的类的存在告诉我,所有这些类都更多地是为了支持MVC模型。
从docs
那么为什么模型还存在呢?最大的原因是它们让可以灵活地决定如何存储和检索数据。例如,如果您正在设计一个在稀疏填充的表中显示数据的电子表格应用程序,则可以创建自己的表模型,该模型已针对此类用途进行了优化。
发布于 2013-05-23 21:41:48
TreeModel和TreeNode是用来实现Swing可视化树组件模型的。例如,你可以在他们的软件包javax.swing.tree上看到这一点。您应该仅将它们用于设计的内容(与UI相关的内容,请参阅Javadoc),而不要将其用作数据结构。这就是你提到的这条评论所告诉我们的。这是绝对正确的。
https://stackoverflow.com/questions/16715288
复制相似问题