在我的公司,我們計劃在幾個項目中使用Drools a BRE。現在我們試圖定義一些最佳做法。Drools - 在規則條件或後果內做複雜的東西
我的問題是應該是什麼,應該不是一個規則條件/結果內進行。 鑑於我們可以直接編寫Java或調用方法(例如,從工作內存中的全局對象)。
例子。給定一個評估通用對象(例如Person)屬性設置爲true的規則。現在,該特定屬性只能定義爲該對象進入數據庫並獲取該信息。因此,我們必須執行該兩種方式:
備選方案A:
- 轉到數據庫並獲取對象屬性(真/假代碼)
- 插入對象在工作存儲器
- 評估規則
替代B:
- 插入具有連接到數據庫的方法全局對象和檢查的財產給定對象。
- 插入對象在工作記憶
- 在規則EVAL,調用全局對象並執行訪問數據庫
其中那些被認爲是更好?我非常喜歡A,但是有時B更直接,但是如果像數據庫中的Exception那樣引發了什麼,會發生什麼?
我已經看到了由Packt出版Drools的5.0書實施的替代B,但是他們正在做的嘲弄,他們不談論要去的數據庫中所有的實際意義。
謝謝
我們也在考慮使用Drools Flow/Salience組合來定義我們是否需要「加載」數據(基於定義的標準)。此外,「from」關鍵字可用於管理複雜層次結構,而無需在工作內存中插入所有對象。 – mfcabrera 2011-02-04 14:41:01