我正在审核使用规则引擎的项目。简而言之,这是一种从应用程序代码外部化业务逻辑的方法。
这个概念对我来说是全新的,对此我持怀疑态度。听到人们谈论贫血领域模型后过去几年中的之后,我对规则引擎方法提出了质疑。在我看来,它们似乎是弱化域模型的好方法。例如,说我正在做一个Java Webapp,与规则引擎进行交互。然后,我决定要拥有一个基于相同域的Android应用。除非我也希望Android应用程序也能与Rule Engine交互,否则我将不得不错过任何已编写的业务逻辑。
因为我还没有与他们的任何经验,只是出于好奇,我很想知道使用规则引擎的优缺点?我能想到的唯一优点是,您无需为了更改某些业务规则而重新构建整个应用程序(但实际上,有多少应用程序确实具有许多更改?)。但是使用规则引擎来解决该问题对我来说听起来像是在band弹枪伤口上贴上创可贴。
更新-自从撰写本文以来,上帝本人马丁·福勒(Martin Fowler)就在博客中发表有关使用规则引擎的信息。