【问题标题】:Can we reuse a rule in drools?我们可以在 drools 中重用规则吗?
【发布时间】:2020-06-05 08:23:33
【问题描述】:

我有几个单独的规则。例如,现在我有 3 组不同的规则要执行。根据输入参数,在任何时候都要执行一组规则。假设在第一组/组中有 5 条规则,在第二组/组中有 7 条规则,在第三组/组中有 5 条规则。现在所有这些集合可能都有共同的规则,我想引用它们而不是在每个集合中写 3 次规则。如何在流口水中实现这一点?明天如果我进行了更新,我应该只能对规则进行一次更改,并且此更改应反映在所有集合中。请对此提出建议.....

谢谢,

【问题讨论】:

    标签: drools reusability


    【解决方案1】:

    您可以使用inheritance 来重用规则逻辑,您可以编写可重用的 DSL 语句并在 rdslr 中编写您的逻辑。
    另一个很好的inheritance example 有解释

    【讨论】:

    • 感谢您的回复,但不幸的是继承并不能解决我的目的。我所有的规则都是独立的,不相互依赖。一个规则可以是两个或多个规则集/组的一部分,并且该组/组中的所有规则都应该执行。我有多达 1000 多个规则和大约 500 个规则集/组,它们重用各个规则。
    • 当您说“重用”时,这不是意味着“规则有共同点”吗?因此您可以使用继承“重用公共部分”。不明白你的论点
    • 让我解释一下....例如,我有规则 A、规则 B、规则 C、规则 D 和规则 E。现在第一组有规则 A、B、C,第二组有B,C,D,E,第三组有规则A,D,E,第四组有规则B,C,D,E。这样可以有N个规则和N个组。请注意,规则 A、B、C、D 和 E 是相互独立的,绝对没有依赖关系或任何共同点。只是小组会有一套规则。现在根据输入参数,第一组或第二组或第三组或第四组可能会被执行。
    • 此外,如果我更改规则 A,那么更改应该反映在规则 A 所属的所有组中,我不应该去每个组更改逻辑,因为规则是独立的,组应该参考原来的规则。
    • 这正是您可以通过继承和 DSL 重用实现的目标
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多