两个FactType接口有什么区别?

时间:2014-09-16 13:52:23

标签: drools drools-guvnor

我正在使用Drools 5.3.5和guvnor中定义的声明性事实模型。我在与规则引擎交互的应用程序的类路径上有drools-core-5.3.5.Final.jarknowledge-api-5.3.5.Final.jar

这些JAR中的每一个都包含一个名为FactType的接口:

drools-core-5.3.5.Final.jar   -> org.drools.rule.FactType  
knowledge-api-5.3.5.Final.jar -> org.drools.definition.type.FactType

我看到org.drools.KnowledgeBase.getFactType()返回org.drools.definition.type.FactType个对象;那么org.drools.rule.FactType用于什么?我的代码是否应该始终使用知识-api FactType?

1 个答案:

答案 0 :(得分:1)

org.drools.rule.FactType可能是某些重构后留下的垃圾。完整类名的grep不会返回命中。 (我想我已经看到了其他的重复,但原谅我没有搜索它们。)

-api-jar在5.x期间发展,意图在一个罐子里收集所有稳定的IF。

一定要:坚持使用“稳定”javadoc中的类,即org.drools.definition.type.FactType。这是升级到更高版本时保持兼容性的唯一方法(至少是尽力而为)。