java - easy-rules:有 if-else 规则吗?

标签 java rule-engine easy-rules

我正在尝试使用简单的规则。

我们可以使用 easy-rules 执行 if-else 规则吗?

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

最佳答案

所有规则都是if-then,没有其他;这是一种不同的思维方式。规则并不意味着取代您在普通源代码中看到的任何逻辑。它们最适合类似于长 switch-case 逻辑或参数驱动逻辑的东西。所得税表格是参数驱动用例的一个示例。

如果您需要根据一个事实的值执行三项操作,例如:

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 进行类似表单的验证。表单中的所有数据都会放入事实中,并触发验证规则。如果任何一个规则为 false,则整个组返回 false,并且表单被视为无效。

关于java - easy-rules:有 if-else 规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031298/

相关文章:

java - Drools 中的非模板动态规则

java - Spring Boot JPA .save() 更新所有记录

java - 独立 Java 应用程序的规则引擎

java - Easy-rules:使用构造函数在 POJO 中设置规则名称

java - 生成的查询包含架构和目录名称

java - Java 应用程序的跨平台安装程序/包装程序 - maven build

Java - 将类作为参数传递

java - java中双射函数的实现