1.现有静态缓存规则似乎未考虑分组的问题
2.如果有全局规则 那么空模块和空操作规则似乎就无效了
3.现有规则 不同规则之间优先级别有问题,问题2就是因此产生的。
我的建议:
首先 静态缓存规则格式统一成 分组:模块:操作
其次 不同规则之间的优先级别依照 操作规则>模块规则>分组规则 这个原理是越小的单元应该具有越高的级别,符合特殊化处理要求。
第三 空模块的规则优先级别应该低于普通模块规则的优先级,同时要高于全局模块的规则优先级
第四 空操作的规则优先级类比同上。
下面我将全部的规则按照优先级从高到底罗列如下:
group:module:action 指定分组的指定模块的指定操作的静态规则
* :module:action 所有分组的指定模块的指定操作的静态规则
group:Em :action + 指定分组的空模块的指定操作的静态规则
group:* :action 指定分组的所有模块的指定操作的静态规则
* :Em :action + 所有分组的空模块的指定操作的静态规则
* :* :action 所有分组的所有模块的指定操作的静态规则
group:module:Ea + 指定分组的指定模块的空操作的静态规则
group:module:* 指定分组的指定模块的所有操作的静态规则
* :module:Ea + 所有分组的指定模块的空操作的静态规则
* :module:* 所有分组的指定模块的所有操作的静态规则
group:Em :Ea + 指定分组的空模块的空操作的静态规则
group:* :* 指定分组的所有模块的所有操作的静态规则
* :Em :Ea + 所有分组的空模块的空操作的静态规则
* :* :* 所有分组的所有模块的所有操作的静态规则
具体代码我的实现就不贴了,期待官方更好的代码实现
上面的* 在哪个位置 表示哪部分为全局规则 因此最终的*:*:*才是真正的全局规则
有+ 的行表示 有空操作(Ea)或者空模块(Em)
而每一个带+的行,的下面都是对应的全局规则,所以符合 第三、四两条要求。
