我有結構如下圖查找重複的表情/參數
Parameter -> Condition -> Rule
讓我們說,我需要建立一個Business rule
,Customer Age > 18
我有兩個參數,Customer Age (P1) and 18(P2)
,其中P1 is Field Parameter (Ognl)
和P2 is constant Parameter
與value 18
。
所以我的Condition
現在是,Customer Age > 18
,所以我的Rule
。
問題陳述:避免用戶創建重複的參數/條件和規則。
解決方案:Constant Parameters, Field Parameters etc
我可以檢查數據庫並比較是否已經存在。
現在的條件對我來說,
Customer Age > 18
和18 < Customer Age
在業務方面相同。
上述情況可能會更復雜。
(a + b) * (c + d) is same as (b + a) * (d + c)
我需要驗證上述表達式。
第一種方法 - 加載來自DB的所有表達式(可以是10000的)並比較using Stack/Tree Structure
,這將真正殺死我的目標。
第二種方法 - 我想建立電力十足,讓說hashcode generator
,或者我們可以說,一個int value
對每一個表情(考慮到運營商/支架也可以)。應該以這種方式生成此值,以驗證上述表達式。
手段a + b
和b + a
應該產生相同的int value
和a - b
和b - a
應該產生不同。
正確的,我可以減少輸出/迭代,但仍然我的應用程序使用相同的參數在100年的條件,規則... – 2014-12-02 09:01:52
我真的很喜歡你使用自定義散列函數的方法。問題是你必須確保散列值(例如字符串「客戶年齡」)在使用時(而不是「客戶年齡」等)完全相同。 – 2014-12-02 09:07:01
我擔心名字,用戶可以給任何參數下的內容,我想在哈希碼計算中使用的條件,如參數值爲18,可以命名爲18或18或18等。 – 2014-12-02 09:14:12