echo編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075) 交流學習。
什麼是規則引擎
規則引擎由推理引擎發展而來,是一種嵌入在應用程序中的組件, 實現了將業務決策從應用程序代碼中分離出來,並使用預定義的語義模塊編寫業務決策。 接受數據輸入,解釋業務規則,並根據業務規則做出業務決策。
簡單來說包括像表單驗證和動態表達式引擎這樣的簡單系統都可以稱之爲規則引擎。
概念是不是有點抽象
其實講的就是一個東西,將我們複雜的if else形成的規則抽離出來
規則引擎有哪些
- Drools
- Visual Rules
- EasyRules
- Aviator表達式求值引擎
還有很多,這裏就不一一舉例了
規則引擎作用是啥?
你一定見過這樣的代碼:
這裏寫的還是比較簡單的那種實現,如果當我們的業務需求不斷迭代的時候,你會發現你的if else會越來越龐大,而且不好管理。規則引擎的作用就是直接將這些if else和業務代碼剝離,比如Drools剝離這種if else,最終業務代碼裏面只需要這些就行了
當然,到這裏可能很多人看不懂,沒關係,這兩行代碼代表的就是將我們if else完全剝離了出來。具體怎麼實現的我們後面再講
規則引擎真的就不需要if else了嗎
這是可能是否不小的誤區,我們的業務決定了我們的代碼規則,if else就是我們代碼規則的體現,如果說我使用了Drools這樣的規則引擎,不代表說我不需要了if else只是用其他的方式來代替了。最關鍵的就是if else已其他的形式出現,同時將它與業務代碼分離開來了。
規則引擎的優點
- 聲明式編程
- 規則移動
- 邏輯與數據分離
規則引擎的缺點
- 很少有成套教程
- 國內市場並不是很成熟
總結
規則引擎就是if else的提煉