在我的公司,我们计划在几个项目中使用 Drools 和 BRE。现在我们试图定义一些最佳实践。
我的问题是在规则条件/结果中应该做什么和不应该做什么。鉴于我们可以直接编写 Java 或调用方法(例如 From a Global object in the Working Memory)。
例子。给定一个评估通用对象(例如人)的规则,将属性设置为 true。现在,只能为进入数据库并获取该信息的对象定义该特定属性。所以我们有两种实现方式:
备选方案 A:
- 转到数据库并获取对象属性(真/假,代码)
- 将对象插入工作内存
- 评估规则
备选方案 B:
- 插入具有连接到数据库的方法的全局对象并检查给定对象的属性。
- 将对象插入到工作内存中进行评估
- 在规则中,调用全局对象并执行对数据库的访问
其中哪个被认为更好?我真的很喜欢 A,但有时 B 更直接,但是如果引发数据库中的异常之类的会发生什么?
我已经在 Packt Publishing 的 Drools 5.0 书中看到了替代 B 的实现,但是他们只是在模拟,他们根本没有谈论访问数据库的实际含义。
谢谢,