我正在审核一个使用所谓的Rules Engine的项目。简而言之,它是将业务逻辑从应用程序代码外部化的一种方法。
这个概念对我来说是全新的,我对此持怀疑态度。在过去几年里听到人们谈论Anemic Domain Models之后,我开始质疑规则引擎的方法。对我来说,它们似乎是弱化域模型的一个很好的方法。例如,假设我正在做一个与规则引擎交互的java webapp。然后我决定我想有一个基于相同域名的Android应用程序。除非我希望Android应用程序也与规则引擎交互,否则我将不得不错过已经编写的任何业务逻辑。
由于我还没有任何使用规则引擎的经验,只是出于好奇,我很有兴趣知道使用规则引擎的优缺点?我能想到的唯一优势是,你不需要仅仅为了改变一些业务规则而重建整个应用程序(但说真的,有多少应用程序真的有这么多改变呢?)但在我看来,使用规则引擎来解决这个问题就像是把创可贴贴在猎枪的伤口上。
更新-自从写了这篇文章,神自己,马丁福勒,就有了blogged about using a Rules engine。
https://stackoverflow.com/questions/250403
复制相似问题