Java规则引擎的优缺点 [已关闭]
2022-08-31 09:10:43
采用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)。
我们现在正在评估用于我们的应用程序服务器的规则。我们遇到了OpenRules,它很容易与Java集成,而且就我们的测试所显示的那样,它的速度足够快。OpenRules优于其他规则的主要优点是修改和处理规则的方式。这一切都发生在Excel表格中,这是非程序员最简单的方法。每个参与者,即使是非技术人员,也完全理解一切:-)
我们还集成了流口水,但是规则理解起来要复杂得多,因为它是一种更程序化的方法。这就是为什么我们 - 最有可能 - 将坚持OpenRules。