gpt4 book ai didi

java - Drools - 在规则条件或结果内做复杂的事情

转载 作者:行者123 更新时间:2023-11-29 06:17:58 26 4
gpt4 key购买 nike

在我的公司,我们计划将 Drools 和 BRE 用于几个项目。现在我们尝试定义一些最佳实践。

我的问题是在规则条件/结果中应该做什么和不应该做什么。鉴于我们可以直接编写 Java 或调用方法(例如从工作内存中的全局对象)。

例子。给定评估通用对象(例如人)的规则,其属性设置为 true。现在,只能为进入数据库并获取该信息的对象定义该特定属性。所以我们有两种实现方式:

备选方案 A:

  • 转到数据库并获取对象属性(真/假,代码)
  • 将对象插入工作内存
  • 评估规则

备选方案 B:

  • 插入一个全局对象,该对象具有连接到数据库的方法并检查给定对象的属性。
  • 将要评估的对象插入工作内存
  • 在规则中,调用全局对象并执行对数据库的访问

哪些被认为更好?我真的很喜欢 A,但有时 B 更直接,但是如果引发数据库异常会发生什么情况?

我在 Packt Publishing 的 Drools 5.0 Book 中看到了替代方案 B,但是他们只是在做一个模拟,他们根本没有谈论访问数据库的实际影响。

谢谢,

最佳答案

关于规则的一个特点是它们可以执行很多很多次。特别是如果您的规则条件有误。这显然会对性能产生影响。

然后我倾向于选择选项 A,在外面准备你的事实,并将它们插入工作内存以进行评估。

当然,也可以选择将规则划分为数据加载规则,然后进行业务规则评估(例如使用规则流)。

这将使您能够以声明方式控制在代码之外填充数据。

关于java - Drools - 在规则条件或结果内做复杂的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com