分享好友 最新动态首页 最新动态分类 切换频道
规则引擎--规则集:规则集合的组织和执行
2024-12-28 12:24

规则引擎--规则集:规则集合的组织和执行

当弄清楚了一个规则的设计和执行逻辑后,接下来需要考虑的就是许多的规则如何组织了,即规则集的抽象设计。

来看一些例子

普通的规则集合

 

使用TreeSet存储规则,具体是依靠规则的priority和name来排序存储到TreeSet中

 

回到规则的执行逻辑

 

见注释

  1. 按照优先级遍历执行,会判断是否有跳过规则
  2. 规则执行,如果命中,则执行规则下的动作,同时判断是否要结束此次规则引擎的执行
  3. 规则引擎可以设定是否执行了一个规则命中就跳出整个执行

这已经符合大部分的规则逻辑和实际情况了:符合所有条件或者只需要某个条件就够了。

如何想规则集合的构造

以普通人的经历来说基本可以有两种规则组织

第一种规则

  1. 九年义务教育,高中,大学,硕士,博士…

按照正常的流程走,优先级必须是这样,每一关都得关关过,过不了就止步了。当然有例外了

  • 天资聪慧的可以进行跳级,即有些关可以不用闯了,跳过(可以看成规则的跳过逻辑)
  • 在每一关过后,可能家庭、学校、社会有些小奖励可以看成规则命中后的动作

第二种规则

当步入社会后,比较复杂起来了, 都是一个一个十字路口,掺杂着一些平行线

规则错综复杂,像一棵树,而第一种规则也适用于其中的某些阶段。可以看成规则命中后的动作

而在计算机的世界中表示上述两种规则集的组织结构显然是线性结构和树形结构。

 

定义普通规则集和执行

对于普通的规则集执行,仍然可以堪称规则下的表达式执行一样:把规则堪称操作数,规则的结果进行or操作

RuleSet的抽象
 
 
 
普通的RuleSet
 
 

借用规则的执行逻辑,在规则集执行的时候遍历每一个规则,如果执行返回true,则后面会跳过执行,否则继续执行下一个

 
 
规则集测试执行
 
 

定义树形规则集

 
  • DecisionTreeNode
 
树形结构规则集
  • TreeRuleSet
 

在树形结构的执行过程中,如果遇到规则执行为命中,则可以表示规则集命中,当然如果有异常则有需要表示出来;同时也可以记录规则执行的路径,即属性结构的执行路径

 
树形结构的执行测试
 

如下: 按照的规则结构走下去


最新文章
手机排行:2023年最新手机排行榜,性能、拍照、续航全面对比
简介:在如今手机市场竞争激烈的情况下,选择一款适合自己的手机变得越来越困难。本文将以2021年最新手机排行榜为基础,从性能、拍照和续航三个方面对比各款手机,帮助读者选购最适合自己的手机。工具原料:品牌型号:苹果iPhone 12、三星G
惊奇:长沙当面套京东白条当面换现金完整流程新手必看!
长沙当面当面套VISA境外卡花呗白条分付【微电:166 7513 1138】全天在线欢迎打电话,当面办理安全靠谱!一说起京东白条,脑海里第一条记忆神经就会跳出来东哥,东哥是热搜的常客,是我的偶像,一个站在食物链顶端的男人,在使用京东白条的过
精品中国货出海wordpress外贸独立站建站模板
使用adc功能来判断不同电压,那必定是通过电压的不同来区分的,这就需要按键与电阻进行组合,我设计打算使用正比关系的按键阻值,这样会比较好在程序判断,最后就如仿真图那样设计,按键按下让某部分电路短路,剩下的电路得到不同的电压值
技术与艺术融合之美,最新变脸探索之旅
摘要:最新变脸技术展现了技术与艺术的融合之美。通过高科技手段,实现了面部特征的快速变换,呈现出令人惊叹的艺术效果。这种技术不仅令人瞩目,也为我们提供了无限的创新可能性,在娱乐、表演、电影等领域展现出广阔的应用前景。探索技术
法学院2024年硕士研究生调剂复试工作安排
法学院研究生调剂采用线下现场复试方式。二、调剂原则1.调剂考生成绩须符合原报考专业和拟调剂专业的“2024年全国硕士研究生招生考试考生进入复试的初试成绩基本要求”A类地区复试基本分数线;2.符合拟调剂专业的报考条件;3.法律史调剂只
百度推广与优化,解析优劣势全面分析
百度推广与优化,优点在于提升品牌知名度、增加网站流量、快速获得潜在客户,且操作简便。但不足之处包括推广费用较高、效果难以评估、过度依赖百度流量可能忽略渠道。需合理规划预算,多渠道整合,实现营销效果最大化。随着互联网的普及,
百度竞价与百度优化的区别
相信大家对百度竞价已经很熟悉了,但仍然有少部分人不清楚竞价与优化的差别,下面从分别从几个方面说说其差别。1.样式差别 百度竞价与百度优化样式区别如下2.时间差别百度竞价只要交了钱,马上能排到第一(只要肯出高价)好的自然排名是长
手游盒子排行榜2025前十名 十大好玩的手游盒子排名
手游盒子排行榜2025前十名为您提供福利好的游戏盒子软件下载,目前国内知名的几款游戏盒子软件都有着不错的用户体验以及实用性。下面就和小编一起来看看有哪些手游盒子是比较好用的吧!2025年0.1折游戏排行榜点击查看详情一、玩go手游平台,
spark 可以指定任务的内存等还有哪些
Spark GraphX是一个基于Spark的图计算库,它为大规模图计算提供了高性能、高效的解决方案。图计算是一种处理大规模、复杂网络数据的方法,它广泛应用于社交网络、信息传播、推荐系统等领域。Spark GraphX的核心设计思想是将图计算任务拆分
微信小程序转圈圈游戏叫什么
微信小程序转圈圈游戏叫爱的火车转圈圈。爱的火车转圈圈是一款趣味休闲驾驶火车的小游戏,在游戏中玩家们需要通过收集乘客来让自己的火车变得更长,注意在完成指定目标之前前往不要撞车。爱的火车转圈圈游戏是一款趣味无穷的微信小游戏。这
相关文章
推荐文章
发表评论
0评