【Drools-开源业务规则引擎】入门实例(含源码)
2015-12-15 15:20
281 查看
该实例转自:http://blog.csdn.net/quzishen/article/details/6163012
便于理解的应用实例1:
现在我们模拟一个应用场景:网站伴随业务产生而进行的积分发放操作。比如支付宝信用卡还款奖励积分等。
发放积分可能伴随不同的运营策略和季节性调整,发放数目和规则完全不同,如果使用硬编码的方式去伴随业务调整而修改,代码的修改、管理、优化、测试、上线将是一件非常麻烦的事情,所以,将发放规则部分提取出来,交给Drools管理,可以极大程度的解决这个问题。
(注意一点的是,并非所有的规则相关内容都建议使用Drools,这其中要考虑系统会运行多久,规则变更频率等一系列条件,如果你的系统只会在线上运行一周,那根本没必要选择Drools来加重你的开发成本,java硬编码的方式则将是首选)
我们定义一下发放规则:
积分的发放参考因素有:交易笔数、交易金额数目、信用卡还款次数、生日特别优惠等。
定义规则:
// 过生日,则加10分,并且将当月交易比数翻倍后再计算积分
// 2011-01-08 - 2011-08-08每月信用卡还款3次以上,每满3笔赠送30分
// 当月购物总金额100以上,每100元赠送10分
// 当月购物次数5次以上,每五次赠送50分
// 特别的,如果全部满足了要求,则额外奖励100分
// 发生退货,扣减10分
// 退货金额大于等于100,扣减100分
根据这些规则,我们让Drools自动为我们计算出为某个特定用户发放的积分数为多少。
源码:https://github.com/XBWer/DroolsDemo
另外举个例子——QQ等级加速
根据一系列的加速规则进行加速。
If you have any questions about this article, welcome to leave a message on the message board.
Brad(Bowen Xu)
E-Mail : max_xbw@163.com
该实例转自:http://blog.csdn.net/quzishen/article/details/6163012
便于理解的应用实例1:
现在我们模拟一个应用场景:网站伴随业务产生而进行的积分发放操作。比如支付宝信用卡还款奖励积分等。
发放积分可能伴随不同的运营策略和季节性调整,发放数目和规则完全不同,如果使用硬编码的方式去伴随业务调整而修改,代码的修改、管理、优化、测试、上线将是一件非常麻烦的事情,所以,将发放规则部分提取出来,交给Drools管理,可以极大程度的解决这个问题。
(注意一点的是,并非所有的规则相关内容都建议使用Drools,这其中要考虑系统会运行多久,规则变更频率等一系列条件,如果你的系统只会在线上运行一周,那根本没必要选择Drools来加重你的开发成本,java硬编码的方式则将是首选)
我们定义一下发放规则:
积分的发放参考因素有:交易笔数、交易金额数目、信用卡还款次数、生日特别优惠等。
定义规则:
// 过生日,则加10分,并且将当月交易比数翻倍后再计算积分
// 2011-01-08 - 2011-08-08每月信用卡还款3次以上,每满3笔赠送30分
// 当月购物总金额100以上,每100元赠送10分
// 当月购物次数5次以上,每五次赠送50分
// 特别的,如果全部满足了要求,则额外奖励100分
// 发生退货,扣减10分
// 退货金额大于等于100,扣减100分
根据这些规则,我们让Drools自动为我们计算出为某个特定用户发放的积分数为多少。
源码:https://github.com/XBWer/DroolsDemo
另外举个例子——QQ等级加速
根据一系列的加速规则进行加速。
If you have any questions about this article, welcome to leave a message on the message board.
Brad(Bowen Xu)
E-Mail : max_xbw@163.com
相关文章推荐
- 内存溢出与内存泄露
- 工作流移植命令
- SqlServer中sqlmaint 实用工具和xp_sqlmaint扩展过程
- KNN邻近算法
- Java 内存回收机制介绍
- 设计模式之建造者模式
- MySQL 定时器EVENT学习
- iOS开发表格操作
- OC-047.NSDictionary字典
- ThinkPHP十三禁止翻墙访问
- Spring常用注解
- Spring常用注解
- Spring常用注解
- OpenGL纹理贴图相关基本概念
- 架构之路(二):性能
- Spring常用注解
- Android PopupWindow的使用
- String和StringBuffer的转换
- 3-1、Intellij IDEA搭建配置Scala环境、打包
- Cannot create a server using the selected type