简介
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。在Java中,大多数流行的规则引擎都实现JSR94
将规则引擎想象成一个以数据和规则作为输入的系统。它将这些规则应用于数据,并根据规则定义为我们提供输出。让我们以一个在线购物为例,我们希望为客户提供某些促销或折扣。
-
如果购物车总额超过$ 400,可为客户提供20%的折扣。
-
第一次下单给10%。
规则引擎的特点
-
简化系统架构,优化应用
-
提高系统的可维护性
-
减少编写“硬代码”业务规则的成本和风险
-
应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内
-
过将规则引擎分开,它提供了更大的可重用性。
规则引擎场景
-
流程分支非常复杂,规则变量庞大
-
有不确定性的需求,变更频率较高
-
需要快速做出响应和决策
-
规则变更期望脱离于开发人员,脱离coding
Java常用规则引擎
EasyRule
Drools