1. 程式人生 > >責任鏈模式的應用

責任鏈模式的應用

一、責任鏈模式概念

         鏈是一系列節點的集合,鏈的各節點可以靈活的拆分重組。當一個請求需要多個物件進行處理,將多個物件串成一個鏈路,從而避免了請求傳送者和接收者之間的耦合關係。請求者不知道是鏈路上的哪個節點做了處理。

二、優缺點

         優點: 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方法,執行業務節點的業務方法。