`
gege_s
  • 浏览: 18758 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
阅读更多

关于树形结构的博客,我总结了下面五篇,其实进行树的加载与展示有很多方案,我觉得我通过优雅的方式实现了,并且做到结点通用与业务扩展属性,针对树的装配做了大量的分析工作,尤其是在算法上力求简洁,当然这期间历经数次重构。

 

比较有意思的是我在重构中经历如下阶段:

 

1.结点 AbstractNode,树 AbstractTree,用到了模板方法,在抽象类里面组织好步骤,结点列表放在子类里实现。

 

2.在1中有一个问题就是造成类的膨胀因为针对每一个业务都会有不同的业务知识在里面,都要写一个新的子类来实

 

现AbstractNode中定义的抽象方法,还要有一个AbstractTree实现,针对这个问题,我要对它进行大的改动:

首先:修改AbstractNode 为泛型类,并改成具体类型,提供extend扩展,这样解决了针对不同的业务要建立不同的结点实现。

其次:修改AbstractTree 为泛型类,并改成具体类型。只要传入结点列表即可建立一个tree实例。

 

这里有一些比较好有意思的设计:

1.如何对结点进行排序。

2.如何得到每一个结点下面的最大深度。

3.怎么样不用第三方js插件展示菜单。

 

树形结构之一 建立务无关的结点类型


树形结构之二 运用递归加载你想要的结构


树形结构之三 帮助你测试


树形结构之四 web展示方案


树形结构之五 数据提取-递归查询

分享到:
评论

相关推荐

    Hibernate映射树形结构

    首先,树形结构在数据库中通常表示为层级数据,例如组织结构、目录树或类别层次。在Hibernate中,映射这种结构的关键在于理解实体之间的关联和嵌套关系。标题“Hibernate映射树形结构”指的是如何用Hibernate来存储...

    为Flex Tree控件构造树形结构数据

    "为Flex Tree控件构造树形结构数据"这个主题聚焦于如何在Adobe Flex中利用Tree控件来呈现层次化的数据。Flex是一种基于ActionScript和MXML的开源框架,常用于构建富互联网应用程序(RIA)。Tree控件在Flex中扮演着...

    struts2+dtree树形结构

    很容易上手的struts2的树形结构,已经有struts2包,直接部署到tomcat目录就可以是使用,地址为:http://localhost:8080/DtreeDemo/,端口改为自己的端口。更详解的解说,请进我的博客:...

    android 树形目录

    然后,通过递归遍历文件系统的目录,构建一个`Directory`对象的树形结构。遍历过程中,可以使用`java.io.File`类来获取目录信息,如`listFiles()`方法用于获取当前目录下的所有文件和子目录。 此外,展示树形目录...

    一个不错的js树形

    在网页开发中,树形结构常用于展现层级关系的数据,如目录结构、组织架构、文件系统等。这样的视觉呈现使得用户可以清晰地理解和操作具有层次性的内容。 【描述】虽然描述为空,但根据标签“源码”和“工具”,我们...

    动易无限级树形导航插件

    1. **无限级树形结构**: - 无限级树形结构是指可以包含任意多层级的节点结构。在网页设计中,这种结构常用于菜单、分类或者组织结构的展示,例如,网站的目录结构、博客分类等。 - 这种结构的优点在于可以清晰地...

    组合模式-------树形模式

    这种模式将对象组织成树形结构,允许用户对部分或整个树进行操作,简化了处理复杂对象集合的逻辑。 在组合模式中,有三个主要角色: 1. **组件(Component)**:定义了公共接口,供叶子节点和组合节点共享。组件...

    Ext TreeCombo 树形 下拉框

    这是一个结合了树形结构和下拉框功能的控件,允许用户从一个层次化的数据结构中选择一个或多个项。在ExtJS中,TreePanel用于展示树形数据,而ComboBox则是一个下拉列表选择框。TreeCombo将这两者融合,提供了一种更...

    jquery 树的样本

    **jQuery 树形结构插件详解** 在网页开发中,我们常常需要展示层次分明的数据,例如文件目录、组织架构或分类信息。...参考链接:[jQuery 树形结构博客文章](https://hr-java-ssh.iteye.com/blog/2296240)

    notepad++自带带目录树

    至于压缩包文件名称“Notepad++(自带树形查看版本)”,这可能指的是一个特别的Notepad++版本或者包含预装了目录树插件的Notepad++安装包。用户下载这个压缩包后,解压并运行其中的安装程序,就能获得带有目录树视图...

    广告项目:(4) jquery树

    在网页开发中,树形结构常用于展示层级关系的数据,如目录结构、组织架构等。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在这个项目中,开发者可能利用jQuery的...

    Notepad++自带树形查看器,附dll

    链接指向的博客文章()可能提供了关于如何启用或安装这个树形查看器的详细步骤,包括可能需要的dll动态链接库文件。 在IT领域,DLL(Dynamic Link Library)是Windows操作系统中的一个重要组件,它封装了可被多个...

    jquery树

    在Web开发中,树形结构常用于展示层次化的数据,如目录结构、组织架构等。jQuery因其简洁的API和良好的浏览器兼容性,成为了实现此类功能的常用工具。 在描述中提到的博文链接指向了ITEYE博客上的一篇文章,虽然...

    C# 系统应用之TreeView控件显示树状磁盘路径并在ListView显示文件

    资源主要是结合博客文章:http://blog.csdn.net/eastmount/article/details/21241313主要讲述使用C# winForm实现类似于资源管理器的界面,通过TreeView控件显示"我的电脑"所有磁盘文件树状目录,并点击结点文件夹能在...

    html+tree

    标题“html+tree”可能指的是一个关于HTML与树形结构结合的应用或技术,可能是用于构建网页的交互式目录、导航菜单或者是数据展示的一种方式。在HTML中,元素可以通过DOM(Document Object Model)形成一个树状结构...

    最简化系统树文件python脚本.rar

    系统树通常指的是将计算机文件系统的目录和文件组织成树形结构,这在理解文件系统的层次和关系时非常有用。在Linux环境中,这样的表示对于管理、调试和教学都是必不可少的。 描述中提到的链接指向了一篇CSDN博客...

    layui treegrid 分页

    layui treegrid 是一款基于 layui 框架的表格组件,它结合了树形结构和分页功能,使得在展示层次关系的数据时也能有效地管理大量数据。layui 是一个轻量级的前端 UI 框架,提供了丰富的组件和模块化的设计,使得开发...

    简单树

    例如,博主可能讨论了二叉树、平衡树(如AVL树或红黑树)等更具体的树形结构,或者讲解如何使用JavaScript、Java等编程语言实现树的数据结构。 【标签】"源码"表明这篇博客可能包含实际的代码示例,读者可以借此...

    ext 下拉树demo

    下拉树(Dropdown Tree)是EXT中的一个组件,它结合了下拉菜单和树形结构,通常用于选择具有层级关系的数据,比如组织结构、目录树或者地区层级等。 在EXT中,创建下拉树的过程可能涉及到以下关键知识点: 1. **...

Global site tag (gtag.js) - Google Analytics