在我的公司,我们计划在几个项目中使用Drools a BRE。现在我们试图定义一些最佳做法。Drools - 在规则条件或后果内做复杂的东西
我的问题是应该是什么,应该不是一个规则条件/结果内进行。 鉴于我们可以直接编写Java或调用方法(例如,从工作内存中的全局对象)。
例子。给定一个评估通用对象(例如Person)属性设置为true的规则。现在,该特定属性只能定义为该对象进入数据库并获取该信息。因此,我们必须执行该两种方式:
备选方案A:
- 转到数据库并获取对象属性(真/假代码)
- 插入对象在工作存储器
- 评估规则
替代B:
- 插入具有连接到数据库的方法全局对象和检查的财产给定对象。
- 插入对象在工作记忆
- 在规则EVAL,调用全局对象并执行访问数据库
其中那些被认为是更好?我非常喜欢A,但是有时B更直接,但是如果像数据库中的Exception那样引发了什么,会发生什么?
我已经看到了由Packt出版Drools的5.0书实施的替代B,但是他们正在做的嘲弄,他们不谈论要去的数据库中所有的实际意义。
谢谢
我们也在考虑使用Drools Flow/Salience组合来定义我们是否需要“加载”数据(基于定义的标准)。此外,“from”关键字可用于管理复杂层次结构,而无需在工作内存中插入所有对象。 – mfcabrera 2011-02-04 14:41:01