实现自定义规则
a) 简单规则设计
1. 规则解析对象类[自定义类]
"expressExp" new ExpressExp()
2. 规则解析对象类的方法[自定义类方法]
"hasCoder" "expressExp.hasCoder(String s)"
3. 静态规则表达式
"expressExp.hasCoder(1)"
4. 动态规则表达式
expressExp.hasTag($key1,$key2)"
5. 通过反映调用自定义类[expressExp]的自定义类方法[hasCoder],并指定参数[1]/[ $key1,$key2].
b) 规则引擎目的
1. 如果此规则作为定义任务的规则
例子:
任务1:
当数据A符合规则1
当数据A符合规则2
当数据A符合规则3
得到结果
任务2:
当数据A符合规则1
当数据A符合规则2
得到结果
…..
当任务有很多规则,其组合方式很复杂时,就需要使用规则引擎,如果使用程序的调用,那么
任务1 if(任务1){ 规则1(A),规则2(A),规则3(A)}
任务2 if(任务2){ 规则1(A),规则2(A)}
任务N.
如何规则2种,那么会有2^2次,4种组合方式,那么如果规则有5种,其组合方式为2^5,32种组合方式,其if/else已经能够让你吐血.
2. 如果此规则定义经常变更
例子:
任务1:
当天气睛,使用A套装方案,散太阳.
当天气雨, 使用B套装方案,淋雨
当天气阴, 使用C套装方案,家里蹲
If(睛) 散太阳
If(雨) …
…
如果你是作业务的,你应该就清楚了,业务天天变,如果硬编码,以后够你受的,如果你能够预测到这块业务可能会变更,那么使用规则。
比如if(睛) 散太阳,打不球.
如果使用规则的话,只需要添加规则定义就够了。
c) 规则引擎基本操作符
“&&” 与
“||” 或
简单规则例子:
”expressExp.hasTag($key1,$key2)&& expressExp.hasTag($key1,$key2)”
首先按照基本操作符进行拆分
”expressExp.hasTag($key1,$key2)” R1
“expressExp.hasTag($key1,$key2)” R2
分别计算不同表达式的结果,最后再对他进行组合R1&&R2.
欢迎拍砖
分享到:
相关推荐
fiddler中文版,可自定义规则
火绒自定义规则(目前最新).rar
批量重命名文件工具,按自定义规则批量完成文件命名,绝对可用
Emlog自动采集工具+支持定时任务和规则,是一款Emlog专业采集工具支持定时任务,支持自定义规则等功能。可以采集其它网站的内容发布到你的emlog博客上!
自动处理规则需要对应着自定义规则,如果没有自定义规则它也是没用的 作用是对自定义规则中容易出现错误拦截的情况做一个排除 像上面栗子中我们勾选上记住本次操作,然后点允许,就会出现一条对应的自动处理规则 ...
主要是自己写的自定义规则,相对较为详细,里面包含规则文档 ,项目原代码由于特殊原因不方面上传,这边只放出DLL 自己去反编译,具体使用方法 除了自定义的DLL需要放置到使用的项目中 和stylecop 安装目录,其他的...
弹出的设置窗口 -> (左侧)高级防护 -> 自定义防护:(右侧顶部)自定义规则:(底部)导入-> 选择自定义规则.json双击刚刚导入的规则,选择处理方式为直接阻止(右侧顶部)自定义处理:(底部)导入-> 选择自定义处理.json
Python 采用自定义规则对列表进行排序 Python源码Python 采用自定义规则对列表进行排序 Python源码Python 采用自定义规则对列表进行排序 Python源码Python 采用自定义规则对列表进行排序 Python源码Python 采用...
AutoCAD.net2010自定义规则的温度计
TThrottle是一个温度监控软件,它除了可以告诉你cpu、gpu的实时温度之外,还可以创建一系列的规则,一旦电脑中的硬件超过了TThrottle规则中设定的温度,那么这个软件就会启动限制处理器和显卡的性能,从而防止硬件...
cppcheck编写自定义规则文档,cppcheck支持自定义规则,通过正则表达式编写检查规则
java自定义规则引擎源代码
aws-config-rules, AWS配置的示例自定义规则的[Node, Python, Java] 存储库 AWS配置规则库AWS自定义配置规则库库。 这里是 。 欢迎使用。以下是利用这些规则的说明。使用AWS配置规则( http://amzn.to/2aFZZw2 )的...
生命游戏(可自定义规则),详细概念见百度
openlayers自定义规则切片浏览实例 包括openlayers.js,Config.js,img,TMS.html
通用集合排序,允许客户自定义规则介入。最短一行代码搞定集合排序,通过参数接入客户自定义排序规则。Java实现,可借鉴思想。
代码静态分析与自定义规则应用.pptx
ClearUrls自定义规则 此可以为提供自定义规则。 规则网址: : 哈希网址: : hash 可用的GET参数 t :指定规则的。 如果为空,则使用所有类型。 可以使用,将两种类型分开。 规则类型 日志 这种类型的规则会阻止网页...
由ODI接口导出的数据,通过自定义规则文件的方式手动导入到Essbase数据库中
c#抽奖程序,允许自定义规则。包含所有源代码和详细的说明。