責任鏈模式的應用
阿新 • • 發佈:2019-02-01
一、責任鏈模式概念
鏈是一系列節點的集合,鏈的各節點可以靈活的拆分重組。當一個請求需要多個物件進行處理,將多個物件串成一個鏈路,從而避免了請求傳送者和接收者之間的耦合關係。請求者不知道是鏈路上的哪個節點做了處理。
二、優缺點
優點: 1. 降低了請求傳送者和接收者之間的耦合關係
2. 把多個判定與條件處理放在各個類中去處理,程式碼更加清晰,職責明確。
缺點:作為連結串列,每次執行都從鏈頭開始,全部執行一便,當鏈路過長影響效率
三、應用場景
一個請求需要一系列操作去處理的場景。如下單場景,就需要有下單的處理鏈路,還需要前置與後置鏈路,校驗,回滾。
四、應用類圖
1. commonContext作為公共上下文,可以設定一些公用的引數,T為繼承commonContext類的業務上下文,一般設定業務入參,和業務處理狀態標記。
2. IChain為責任鏈的介面物件,提供execute方法,執行鏈路的核心實現方法
3. bizChain為實現鏈路的責任鏈物件,其中的handlerList為承載鏈路各節點物件的集合,bizChain實現IChain的execute方法,遍歷handlerList執行每一個handler物件的handler方法。
4. IHandler為鏈路節點物件的介面類,提供handler方法,執行每個節點業務邏輯。
5. HandlerBeanX為鏈路每個節點的物件,實現IHandler中handler方法,執行業務節點的業務方法。