天天看點

設計模式-行為型模式-職責鍊模式

職責鍊模式基本介紹

  1.  職責鍊模式(Chain of Responsibility Pattern),又叫 責任鍊模式,為請求建立了一個 接收者對象的 鍊( 簡單示意圖) 。這種模式對請求的發送者和接收者進行解耦
  2.  職責鍊模式通常每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該請求,那麼它會把相同的請求傳給下一個接收者,依此類推。
  3.  這種類型的設計模式屬于行為型模式

職責鍊模式的注意事項和細 節

1) 将請求和處理分開,實作解耦,提高系統的靈活性

2) 簡化了對象,使對象不需要知道鍊的結構

3) 性能會受到影響,特别是在鍊比較長的時候,是以需控制鍊中最大節點數量,一般通過在Handler中設定一個最大節點數量,在setNext()方法中判斷是否已經超過閥值,超過則不允許該鍊建立,避免出現超長鍊無意識地破壞系統性能

4) 調試不友善。采用了類似遞歸的方式,調試時邏輯可能比較複雜

5) 最佳應用場景:有多個對象可以處理同一個請求時,比如:多級請求、請假/加薪等審批流程、Java Web中Tomcat對Encoding的處理、攔截器。

繼續閱讀