背景
项目中,经常会遇到各种折叠形式的组织结构,可以理解为各种“树”。写的多了,慢慢地也开始尝试造“轮子”。本文,简单描述一个“树”形组织结构的实现。
设计
树,一种组合关系。一棵树,有一个根,若干个枝干,无数的叶子。所以,树的抽象从结构上进行分析,分为树根和节点。当然,无论树根还是树节点都是有“肉”的,这里就是各种业务数据。
模型抽象
类图
项目结构
结构说明
- Tree:树的抽象。属性:root代表树的根。
- TreeNode:树节点的抽象;属性:data-节点数据(一般为业务数据);children:子节点。
- AbstractNodeData:树节点数据的抽象。属性:nodeId-数据id;nodeName-节点名称;nodeType-节点类型;icon-节点图表;desc-数据描述。
- NodeTypeEnum:辅助类,树节点类型枚举。
数据测试
- 两种测试节点:文件夹和文件,对象的节点数据为FolderNodeData和FileNodeData
- junit测试类TreeTest。
测试数据输出
结语
“轮子”地址:tree-github。如果对你有用可以标个star。
静下心来看GitHub,不定期分享学习心得。
版权所有,欢迎转载,转载请标明出处!