这部分代码能解释一下吗,模块和组件具体是什么关系
来源:2-14 实现RBAC View层
Itroads
2022-07-07 18:38:27
1回答
好帮手慕小蓝
2022-07-08
同学你好~
这里的功能应当是,先将一级功能选项获取(即模块),然后将二级功能选项(即功能)绑定到对应的一级功能选项上。此时可以发现,一级功能选项应当包含两个信息:
1. 自身的信息
2. 所包含的二级功能选项的信息
所以这里使用Map集合来保存这两个信息,并且由于需要维护数据的顺序,就选择了LinkedHashMap:
1. 使用key为“node”的键值对保存自身信息
2. 使用key为“children”的键值对来保存所包含的二级功能选项的信息
这里二级功能选项并不是只有一个,所以需要使用集合来保存。
接下来我们就需要遍历整个列表:
1. 如果当前的node是一级功能选项,那么我们就要按照上面所说的,保存“node”和“children”两个属性;
2. 如果当前的node是二级功能选项,那么我们需要获取最近的一级功能列表中的“children”属性中存储的集合,然后将该对象存储到集合中,就完成了将“二级功能选项绑定到对应的一级功能选项上”的功能。
这里可以这么处理的原因在课程里也有说明,是因为列表具有的规律:
列表中存储的是一级后面紧跟着其包含的二级,然后再是一级,然后再是其包含的二级,只有这样的规律才能使用上面的做法。
所以同学截图的代码中:
1. if结构用于判断当前的node是一级功能选项还是二级功能选项;
2. if代码块中用于处理一级功能选项的操作,即保存“node”和“children”两个属性;
3. else代码块中用于处理二级功能选项的操作,即将“二级功能选项绑定到对应的一级功能选项上”。
祝学习愉快~
相似问题