關於決策樹的理解

浮白呀發表於2024-10-25

近期在專案中使用了規則樹這一設計模式,感覺和決策鏈來說是有些區別的
1.決策鏈是鏈型的,走的是鏈,流程都要完整的走一遍
2.決策鏈用的一種巢狀,基於函式結尾重新呼叫next的函式直至結束

但是規則樹不一樣

規則樹是基於類似二叉樹的結構,有的透過有的不透過
,並且它每層都用List<Map<>>記錄了下一層的內容

事實上它有三部分組成
首先是樹根,一般樹根的關建在於兩點,其中一點,指向樹根的key,記錄樹幹的List<Map<>>

其次是樹幹,樹幹的關鍵點在於LIst<Map<>>,一般我們在初始化的時候先賦值樹幹,組裝後裝配到樹根,
樹幹一般有一個字串型別的鍵,與邏輯方法組成另一個List<<Map<>>來進行邏輯的過濾,一般構成這組鍵值對的都是整合了同一個介面
但是不同實現型別,且透過@Component("")來進行掃描裝配的一種方法

然後就是樹葉,樹葉的關鍵點在於key的指向,與其說是樹幹連線樹葉和樹根,但在實際邏輯上樹葉提供了自身與樹幹的對映.

如圖:

如圖所示,不同的邏輯對應不同的返回結果,對應不同的樹幹,也就對應了不同的下次邏輯

相關文章