我需要在我的Delphi應用程序中自動化一些非常複雜的業務規則(保險)。迄今爲止,我們已經使用腳本引擎來維護這些規則(很多if/then/else類型的語句),但這已經變得難以維護並且無法測試,並且很難與最終用戶一起驗證這些規則。德爾福自動化邏輯
我看過的大多數正式規則引擎都不能很好地與Delphi集成(目前使用D2007,但計劃今年轉向64位XE2)。
是否有人知道任何產品或使用過任何可以幫助我的產品或技術?
我需要在我的Delphi應用程序中自動化一些非常複雜的業務規則(保險)。迄今爲止,我們已經使用腳本引擎來維護這些規則(很多if/then/else類型的語句),但這已經變得難以維護並且無法測試,並且很難與最終用戶一起驗證這些規則。德爾福自動化邏輯
我看過的大多數正式規則引擎都不能很好地與Delphi集成(目前使用D2007,但計劃今年轉向64位XE2)。
是否有人知道任何產品或使用過任何可以幫助我的產品或技術?
看看共同知識Object Connections。但是我沒有經驗。
我沒有看到這在谷歌...一直在評估,它是非常強大的。當然解決我的問題。只需要看看我是否可以將其添加到我的工具箱... – 2012-02-07 06:04:40
已決定採用此解決方案。它比我所需要的要多,但只花了大約四個小時將我的規則轉換爲決策表,使用SDK將它們集成到我的Delphi應用程序中,並將基本測試套件組合在一起。 – 2012-02-09 01:01:52
很好聽。請將此問題標記爲您接受的答案。 – 2012-02-09 04:30:21
看看RemObjects SDK(DataAbstract,如果你還需要直接訪問數據庫)。它們允許服務器端和客戶端scripting。
我們使用Databastract取得了巨大成功。
您能詳細介紹一下您的業務領域和涉及的複雜性嗎?謝謝。 – menjaraz 2012-02-06 19:05:53
腳本確實是處理可能改變的業務邏輯部分的好方法。
但是,我懷疑你的問題是你缺乏適當的對象模型。有很多IF表明你有集中的邏輯,然後決定取決於許多因素,你必須檢查和結束一團糟。
這是直接使用數據而不是使用對象處理的症狀。當你直接操縱數據時,你必須知道所有適用的規則。
我一直主張以模型爲中心的解決方案。通過適當設計的對象模型,職責分散在模型中的類中,從而消除熱點。這對應於Single responsibility principle和Don't repeat yourself。
當然,挑戰在於對問題域進行建模,但這是我建議探索的途徑。
+1。我完全同意倡導面向對象建模。 – menjaraz 2012-02-06 19:02:36
我認爲你的解決方案(腳本引擎)是一個很好的解決方案。可能你應該嘗試在測試和維護上工作。 – philnext 2012-02-06 08:50:25
我認爲你必須實現狀態模式 - http://en.wikipedia.org/wiki/State_pattern – 2012-02-06 08:58:57
我可以高度推薦Eric [Erica]設計的書(http://domaindrivendesign.org/books)埃文斯 – mjn 2012-02-06 10:42:27