成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Drools規(guī)則引擎-如果Fact對(duì)象參數(shù)為null如何處理

marser / 909人閱讀

摘要:比如對(duì)一個(gè)企業(yè)進(jìn)行信用評(píng)級(jí),涉及三個(gè)維度企業(yè)年齡企業(yè)注冊(cè)資本與企業(yè)法人年齡。增加判斷如果是將三個(gè)業(yè)務(wù)的判斷放在一個(gè)規(guī)則當(dāng)中,那么對(duì)對(duì)象為的情況就需要特殊處理了。

問題場(chǎng)景

在技術(shù)交流群(QQ:715840230)中有同學(xué)提出這樣的問題:

往kiesession里面?zhèn)魅雈act,如果不做輸入檢查fact里面有些字段可能是null值。但是如果在外面做輸入檢查,規(guī)則一改,fact所需要的字段不一樣了,輸入檢查也要跟著改,耦合比較強(qiáng)。有沒有比較好的方法呢?
問題解答

其實(shí)針對(duì)這種問題與規(guī)則引擎的關(guān)系不大,比較重要的還是要看業(yè)務(wù)邏輯。

比如對(duì)一個(gè)企業(yè)進(jìn)行信用評(píng)級(jí),涉及三個(gè)維度:企業(yè)年齡、企業(yè)注冊(cè)資本與企業(yè)法人年齡。當(dāng)然,在這個(gè)例子中各項(xiàng)值暫定為都是越高所得的評(píng)定分值越高。

就這個(gè)例子來解答一下上面的問題。從兩個(gè)維度來講:

減少耦合

如果想真正的減少耦合,那么可將三個(gè)維度的進(jìn)行拆分,不放在一個(gè)fact對(duì)象中傳入,而是三個(gè)規(guī)則,每個(gè)規(guī)則都計(jì)算對(duì)應(yīng)的值,最終將結(jié)果逐個(gè)相加。使用這種方案,便不存在fact值為null的問題。

增加判斷

如果是將三個(gè)業(yè)務(wù)的判斷放在一個(gè)規(guī)則當(dāng)中,那么對(duì)fact對(duì)象為null的情況就需要特殊處理了。比如在when中我們只獲取類型為企業(yè)的fact對(duì)象,而不具體限定條件。這樣只要是企業(yè)對(duì)象進(jìn)入,都會(huì)被規(guī)則匹配,而具體的分值計(jì)算放在then部分進(jìn)行處理。

還有一種情況就是限定條件通過自定義一些函數(shù)來進(jìn)行處理,比如獲得fact對(duì)象之后將通過自定義的函數(shù)將其處理成預(yù)期的結(jié)果,然后再在then中做匯總。

其他方法

那么,針對(duì)那位同學(xué)的問題,他想通過在插入fact對(duì)象之前進(jìn)行校驗(yàn)排查,這其實(shí)是一種選擇,選擇默認(rèn)屬性為null的值的得分為0。針對(duì)他的這項(xiàng)疑惑,本人在交流群中給出的解答為:

不傳這個(gè)值或忽略這個(gè)值,其實(shí)就是對(duì)這個(gè)值的一種處理。同樣的,在規(guī)則中也可以這樣處理,而且更靈活的處理。比如這個(gè)打分,如果某一項(xiàng)不傳,那默認(rèn)可能這一項(xiàng)就是0分,但如果傳了null值,你可以在規(guī)則中對(duì)null進(jìn)行處理,設(shè)置為0,你甚至還可以對(duì)null值進(jìn)行處理,設(shè)置成負(fù)數(shù)。
相關(guān)技術(shù)視頻

CSDN學(xué)院:《Drools7規(guī)則引擎進(jìn)階教程》

CSDN學(xué)院:《Drools7規(guī)則引擎入門教程》

CSDN學(xué)院:《Drools7系列優(yōu)惠套餐》

原文鏈接:http://www.choupangxia.com/20...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75611.html

相關(guān)文章

  • Drools規(guī)則引擎-memberOf操作

    摘要:今天這批文章就帶大家了解一下規(guī)則引擎中比較操作符之一的。對(duì)象類代碼調(diào)用規(guī)則引擎代碼歡迎張三歡迎張三張三規(guī)則代碼,這里模擬了兩種場(chǎng)景的規(guī)則判斷規(guī)則觸發(fā)規(guī)則觸發(fā)執(zhí)行結(jié)果規(guī)則觸發(fā)規(guī)則觸發(fā) 場(chǎng)景 規(guī)則引擎技術(shù)討論2群(715840230)有同學(xué)提出疑問,memberOf的使用過程中如果,memberOf之后的參數(shù)不是集合也不是數(shù)組,而是格式如1,2,3,4的字符串,那么Drools是否會(huì)講其轉(zhuǎn)...

    MrZONT 評(píng)論0 收藏0
  • Drools規(guī)則引擎-判斷某個(gè)對(duì)象中的集合是否包含指定的值

    摘要:規(guī)則引擎集合相關(guān)處理在實(shí)際生產(chǎn)過程中,有很多關(guān)于集合的處理場(chǎng)景,比如一個(gè)對(duì)象中包含有一個(gè)集合,而需要判斷該集合是否包含某個(gè)值。而規(guī)則引擎也提供了多種處理方式,比如通過等進(jìn)行操作,比較。然后,通過關(guān)鍵字來遍歷中的值,獲得符合條件的。 規(guī)則引擎集合相關(guān)處理 在實(shí)際生產(chǎn)過程中,有很多關(guān)于集合的處理場(chǎng)景,比如一個(gè)Fact對(duì)象中包含有一個(gè)集合,而需要判斷該集合是否包含某個(gè)值。而Drools規(guī)則引...

    yuxue 評(píng)論0 收藏0
  • Drools規(guī)則引擎-判斷集合(List)是否包含集合

    摘要:?jiǎn)栴}場(chǎng)景在使用規(guī)則引擎時(shí),有朋友會(huì)遇到這樣的問題,就是在部分判斷的兩個(gè)參數(shù)都是集合類型,比如兩個(gè),此時(shí)要判斷一個(gè)集合是否包含另外一個(gè)集合的內(nèi)容。 問題場(chǎng)景 在使用Drools規(guī)則引擎時(shí),有朋友會(huì)遇到這樣的問題,就是在when部分判斷的兩個(gè)參數(shù)都是集合類型,比如兩個(gè)List,此時(shí)要判斷一個(gè)集合是否包含另外一個(gè)集合的內(nèi)容。 拿一個(gè)具體的例子來說明,我的公眾號(hào)《程序新視界》接受商務(wù)合作有一定...

    Cc_2011 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<