Java规则引擎的优缺点 [已关闭]

2022-08-31 09:10:43

采用Java规则引擎JESSDrools的利弊是什么?还有其他玩家吗?

我知道Drools是开源的,而JESS不是,但是它们在其他领域如何比较,例如易用性,性能,与代码的集成级别?


答案 1

采用Java规则引擎JESS和Drools的利弊是什么?

如果需要将业务规则与应用程序逻辑分开,请使用规则引擎。您的项目是否需要规则引擎一文有一个很好的例子:

例如,典型的店面系统可能涉及计算折扣的代码:

if (product.quantity > 100 && product.quantity < 500) {
  product.discount = 2;
} else if (product.quantity >= 500 && product.quantity < 2000) {
  product.discount = 5;
} else if (product.quantity >= 2000) {
  product.discount = 10;
}

规则引擎将上述内容替换为如下所示的代码:

ruleEngine.applyRules(product);

由您来决定将规则管理控制台交到非技术人员手中是否是一件好事,:)

有关更多详细信息,请参阅我应该使用规则引擎?为什么使用规则引擎?决定是否使用规则引擎的一些准则Google

还有其他玩家吗?

其他球员包括JRules,Corticon(JRules是最着名的IMO - 这并不意味着最好的)。

它们在易用性、性能、与代码的集成程度等其他方面如何比较?

不能确切地告诉你,我对Drools只有一点(积极)的经验。但是你会从博客文章中得到一些反馈,比如JBoss Drools vs ILog JRules - 一个轶事故事(一定要阅读它)或从JRules的角度使用Drools。我相信你可以在谷歌上找到更多(但我会试试Drools)。


答案 2

我们现在正在评估用于我们的应用程序服务器的规则。我们遇到了OpenRules,它很容易与Java集成,而且就我们的测试所显示的那样,它的速度足够快。OpenRules优于其他规则的主要优点是修改和处理规则的方式。这一切都发生在Excel表格中,这是非程序员最简单的方法。每个参与者,即使是非技术人员,也完全理解一切:-)

我们还集成了流口水,但是规则理解起来要复杂得多,因为它是一种更程序化的方法。这就是为什么我们 - 最有可能 - 将坚持OpenRules。


推荐