我正在審計一個項目,該項目使用所謂的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