我正在尝试简单的规则。
我们可以使用轻松规则执行if-else
规则吗?
我已经检查了ActivationRuleGroup
和ConditionalRuleGroup
,但似乎只有if
。
答案 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
中,并触发验证规则。如果任何一个规则为假,则整个组都将返回假,并且该表格被视为无效。