我正在审核一个使用所谓的规则引擎的项目。简而言之,这是一种从应用程序代码中外部化业务逻辑的方法。
这个概念对我来说是全新的,我对此持怀疑态度。在过去几年听到人们谈论贫血域模型后,我质疑规则引擎方法。对我来说,它们似乎是削弱域模型的好方法。例如说我正在做一个与规则引擎交互的java webapp。然后我决定我想要一个基于相同域的 Android 应用程序。除非我希望 Android 应用程序也与规则引擎交互,否则我将不得不错过已经编写的任何业务逻辑。
由于我还没有任何经验,只是好奇,我有兴趣了解使用规则引擎的利弊?我能想到的唯一优点是您不需要重建整个应用程序只是为了更改一些业务规则(但实际上,有多少应用程序真的有这么多的更改?)。但是使用规则引擎来解决这个问题对我来说听起来就像在猎枪伤口上贴创可贴一样。
更新 - 自从写了这篇文章之后,这位大神 Martin Fowler 在博客上写了一篇关于使用规则引擎的文章。