首页 > 编程知识 正文

smart原则简单案例,java规则引擎使用场景

时间:2023-05-04 18:55:14 阅读:274374 作者:3252

以一个案例说明 案例:首先引入QLExpress项目结构一览方法调用,结果展示总结

QLExpress官方git地址: https://github.com/alibaba/QLExpress 案例:

案例:没有房产,租房住的人每个月可以领取1000元的住房补贴。

两个条件:1 没有房产,2 租房住。

首先引入QLExpress <dependency> <groupId>com.alibaba</groupId> <artifactId>QLExpress</artifactId> <version>3.2.0</version></dependency> 项目结构一览

PersonInfo类

PersonServ类

RunnerUtil类

MacroEnum类

此时项目结构已经搭建完成。

方法调用,结果展示

在RunnerUtil中新建一个方法,用于判断用户是否具有领取租房补贴的权利

在main方法中调用测试

输出结果(设置了isTrace为true,所以会跟踪步骤,易于调试)

结果解析

执行流程

首先在expressRunner用中文替换了一些基本操作符。然后用中文绑定了java类中的方法,比如"是否有房产"绑定了PersonServ中的hasHouse方法。定义了一些macro宏定义的枚举类。列如"有房产",调用了"是否有房产"方法,传入了person1。调用,定义一个personInfo实体类,传入判断条件为"无房产 并且 租房住"。这时候ql会调用"无房产"宏定义,"无房产"宏定义调用了"是否有房产"方法,在"是否有房产"方法中,取出personInfo中的hasHouse属性,为0,与传入的0做比较,相等,则返回true,表示此用户无房产。之后调用"租房住"宏定义,"租房住"宏定义调用了"是否租房住"方法,在"是否租房住"方法中,取出personInfo中的rentHouse属性,为0,与传入的1做比较,不相等,则返回false,表示用户并不是租房住的。因为是 并且 操作符,true加false 为false。所有最终返回结果为false。false表示用户没有领取租房补贴的权利。自此,执行完毕。 总结

有点烦。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。