规则引擎算法能解决什么问题?
哪些是推荐的?
发布于 2010-03-17 04:42:18
规则引擎可以封装业务逻辑,通常是以声明的方式。这就避免了在软件中自定义编码业务逻辑的需要。
规则引擎算法是如何实现规则匹配和触发的,因此它是一个实现细节,而不是实际解决问题本身。算法可能具有不同的非功能性优势或劣势。规则引擎算法的一个常见示例是在Java规则引擎JESS和Drools中使用的Rete Algorithm。
发布于 2010-03-17 04:46:46
摘自this site
发布于 2010-03-18 21:09:09
在最低级别,正向链接规则引擎允许您以大致以下方式构建规则集(通常是大型规则集):
if (Condition A) {assert (Condition B)}
if (Condition C) {assert (Condition B)}
if (Condition B) {do something}条件也可以有参数:
if (Condition A (X, Y)) {assert (Condition B (X)}
if (Condition C (X)) {assert (Condition B (X)}
if (Condition B (X)) {do something with X}这些链条可以有你想要的深度。Rete algorithm及其变体允许高效地处理大型规则集。
规则引擎解决的问题是将规则集的维护与应用程序分开-规则可以重新配置,而不必重新构建应用程序。虽然(理论上)非技术分析师或中小型企业可以自己维护规则集,但在实践中,要避免在复杂的规则集上搬起石头砸自己的脚,需要一点技术智慧-如果没有大型规则集,规则引擎就有点没有意义。
规则引擎真正闪耀的地方是规则集较大且经常更改的地方,或者规则引擎内置到打包的应用程序中并用于配置应用程序以支持特定于客户的业务规则或工作流触发器的地方。
https://stackoverflow.com/questions/2457924
复制相似问题