易规则的规则引擎我们可以触发if-else规则吗?

时间:2019-01-03 23:39:20

标签: java rule-engine easy-rules

我正在尝试简单的规则。

我们可以使用轻松规则执行if-else规则吗?

我已经检查了ActivationRuleGroupConditionalRuleGroup,但似乎只有if

1 个答案:

答案 0 :(得分:1)

所有规则都是如果是,就没有其他规则了;这是另一种想法。规则并不能代替您在平均源代码中看到的任何逻辑。最好将它们实现为类似于长开关情况的逻辑或参数驱动的逻辑。所得税表格是参数驱动的用例的一个例子。

如果您需要基于一个事实的值执行三个操作,例如:

if age < 16
    action: discount = 15%
else if age >= 16 and age <= 65
    action: discount = 0%
else 
    action: discount = 20%

然后您只需编写3条规则:

when age < 16
    action: discount = 15%

when age >= 16 and age <= 65
    action: discount = 0%

when age > 65
    action: discount = 20%

复合规则用于处理规则的

ConditionalRuleGroup具有一个“主要”规则,因此当其求值为true(触发)时,将触发该组中的其余规则,否则将跳过该组。

我使用UnitRuleGroup进行类似表单的验证。表单中的所有数据都将放入facts中,并触发验证规则。如果任何一个规则为假,则整个组都将返回假,并且该表格被视为无效。