我有很多规则限制,可以通过"或"在逻辑上组合在一起。例如:3条规则" r1"," r2"和" r3"。我可以构建一个单一的LHS:
(r1 || r2 || r3)
或者我可以将它们各自作为一个单独的规则。我没有任何关键的功能要求,因为我可以在Drools之外独立检测他们的分组。
我想知道从运行时执行的角度来看,一种方式是否比另一种更有利(性能,内存等)。
答案 0 :(得分:0)
模式级别的分离处理非常类似于两个不同的规则,因此无论如何都没有太多的获得或丢失。
但从维护和开发的角度来看,两个单独的规则需要右侧的两个副本,因此在单个规则中使用分离似乎更为可取。
建立绑定变量曾经有点棘手,但我认为Drools的最新版本(6.x)处理得令人满意。
请注意,约束级别的析取不应该被拆分为单独的规则。