我正在审计一个项目,该项目使用所谓的Rules Engine。简而言之,它是从应用程序代码中外化业务逻辑的一种方法。规则引擎 - 优缺点
这个概念对我来说是全新的,我很怀疑它。在过去几年中听到人们谈论Anemic Domain Models之后,我在质疑规则引擎方法。对我来说,他们似乎是减弱域模型的好方法。例如,我正在做一个java webapp与一个规则引擎交互。然后我决定我想要一个基于相同域的Android应用程序。除非我想让Android应用程序与规则引擎进行交互,否则我将不得不错过已写入的任何业务逻辑。
由于我还没有任何经验,只是好奇心,我有兴趣听说利弊是在使用规则引擎?我能想到的唯一一个专业人员是,您不需要重新构建整个应用程序来改变一些业务规则(但真的,有多少应用程序真的有这么多的改变?)。但是使用规则引擎来解决这个问题对我来说就像是在霰弹枪伤口上施加一个创可贴。
更新 - 自写这篇文章以来,神本人Martin Fowler拥有blogged about using a Rules engine。
您是否正在寻找任何第三方产品,或者您打算推出自己的产品? – 2008-10-31 16:59:01
这是Martin Fowler的一篇很棒的文章,谢谢! – 2009-09-16 21:07:00
你是对的 - 他们非常反OO。他们来自OO不常见的情况(这部分解释了它),但是他们非常希望与您说的“贫血”的记录/价值对象一起工作。这不一定是坏事,但它就是这样。如果你不喜欢这样 - 你不会喜欢规则引擎。 – 2010-11-08 00:42:54