树组件设计

背景

项目中,经常会遇到各种折叠形式的组织结构,可以理解为各种“树”。写的多了,慢慢地也开始尝试造“轮子”。本文,简单描述一个“树”形组织结构的实现。

设计

树,一种组合关系。一棵树,有一个根,若干个枝干,无数的叶子。所以,树的抽象从结构上进行分析,分为树根和节点。当然,无论树根还是树节点都是有“肉”的,这里就是各种业务数据。

模型抽象

类图

类图

项目结构

项目结构

结构说明

  • Tree:树的抽象。属性:root代表树的根。
  • TreeNode:树节点的抽象;属性:data-节点数据(一般为业务数据);children:子节点。
  • AbstractNodeData:树节点数据的抽象。属性:nodeId-数据id;nodeName-节点名称;nodeType-节点类型;icon-节点图表;desc-数据描述。
  • NodeTypeEnum:辅助类,树节点类型枚举。

数据测试

  • 两种测试节点:文件夹和文件,对象的节点数据为FolderNodeData和FileNodeData
  • junit测试类TreeTest。

 测试类1
 测试类2

测试数据输出

测试数据

结语

“轮子”地址:tree-github。如果对你有用可以标个star。


静下心来看GitHub,不定期分享学习心得

版权所有,欢迎转载,转载请标明出处!

Alan Zhang wechat
欢迎您扫一扫上面的微信公众号“补愚者说”,订阅我的博客!