簡介:使用規則引擎可以通過降低實現複雜商務邏輯的組件的複雜性,降低應用程式的維護和可擴充 性成本。這篇更新的文章展示如何使用開源的 Drools規則引擎讓 Java™ 應用程式更適應變化。 Drools 項目引入了一個新的本地規則運算式語言和一個 Eclipse 外掛程式,使Drools 比以前更容易使用。
要求施加在當今軟體產品上的大多數複雜性是行為和功能方面的,從而導致組件實現具有複雜的業務 邏輯。實現 J2EE 或 J2SE 應用程式中商務邏輯最常見的方法是編寫 Java 代碼來實現需求文檔的規則和 邏輯。在大多數情況下,該代碼的錯綜複雜性使得維護和更新應用程式的商務邏輯成為一項令人畏懼的任 務,甚至對於經驗豐富的開發人員來說也是如此。任何更改,不管多麼簡單,仍然會產生重編譯和重部署 成本。
規則引擎試圖解決(或者至少降低)應用程式商務邏輯的開發和維護中固有的問題和困難。可以將規 則引擎看作實現複雜商務邏輯的架構。大多數規則引擎允許您使用宣告式程式設計來表達對於某些給定資訊或 知識有效結果。您可以專註於已知為真的事實及其結果,也就是應用程式的商務邏輯。
有多個規則引擎可供使用,其中包括商業和開放源碼選擇。商業規則引擎通常允許使用專用的類似英 語的語言來表達規則。其他規則引擎允許使用指令碼語言(比如 Groovy 或 Python)編寫規則。這篇更新 的文章為您介紹 Drools 引擎,並使用樣本程式協助您理解如何使用 Drools 作為 Java 應用程式中業務 邏輯層的一部分。
更多事情在變化……
俗話說得好,“惟一不變的是變化。”軟體應用程式的商務邏輯正是如此。出於以下原因,實現應用 程式商務邏輯的組件可能必須更改:
在開發期間或部署後修複代碼缺陷
應付特殊狀況,即客戶一開始沒有提到要將商務邏輯考慮在內
處理客戶已更改的營運目標
符合組織對敏捷或反覆式開發法過程的使用
如果存在這些可能性,則迫切需要一個無需太多複雜性就能處理商務邏輯更改的應用程式,尤其是當 更改複雜 if-else 邏輯的開發人員並不是以前編寫代碼的開發人員時。
Drools 是用 Java 語言編寫的開放源碼規則引擎,使用 Rete 演算法對所編寫的規則求值。Drools 允 許使用聲明方式表達商務邏輯。可以使用非 XML 的本地語言編寫規則,從而便於學習和理解。並且,還 可以將 Java 代碼直接嵌入到規則檔案中,這令 Drools 的學習更加吸引人。Drools 還具有其他優點: