2015-10-23 19 views
0

我有一點設計困境。我有java和sql,沒有規則引擎。我不想實現一個完整的規則引擎。 我的場景: 我有一些輸入數據,即。代碼,說明和金額。 使用這些我將它們傳遞到一個函數,它將運行大量if else語句,這些語句是我的業務規則並將確定輸出。 我可以在java中做到這一點,但問題是這些代碼和描述可能隨時更改,業務規則也可能會更改,所以我的「如果elses」需要輕鬆更改。我的想法得到了我必須處理的是,在sql中使用存儲過程而不是管理許多如果elses,這可以簡單地通過編輯存儲的proc並簡單地按f5來更改,而使用java,我會擁有修改java代碼並重新編譯和部署需要更長的時間。Java - 管理許多必須易於更改的if else語句

我想知道是否有人有這樣的問題,他們的經驗和成功的方法是什麼。要求是速度,並且能夠輕鬆編輯這些業務規則。如果

謝謝你們

+2

你可以給你一個更具體的例子,你試圖實現? –

+0

在一些屬性中放置邏輯,然後只是用這個屬性文件進行處理。您可以隨時更改文件 – ema

+0

似乎您需要將您的業務條件(在IF中)「概括」爲任何元數據(存儲在數據庫中)並設計任何通用Java代碼作爲規則解釋...但是作爲[Aron_dc] (http://stackoverflow.com/users/1579877/aron-dc)提到你的問題的一些例子可以澄清你的需求 –

回答

0

如果你的要求是隻改變的值來檢查和else語句然後通過EMA的答案是正確的道路要走。如果您的要求是邏輯必須在運行中更改和刷新,那麼您需要將其外部化並部署。有幾種方法可以做到這一點。根據我的經驗,我已經使用drools一個來自jboss的代碼庫的庫規則引擎,它允許通過可編寫腳本的方式從非常簡單到非常複雜的規則構建,以便您可以部署文件並進行更改並重新加載它。這是鏈接到他們的網站http://www.drools.org/