職責鍊模式基本介紹
- 職責鍊模式(Chain of Responsibility Pattern),又叫 責任鍊模式,為請求建立了一個 接收者對象的 鍊( 簡單示意圖) 。這種模式對請求的發送者和接收者進行解耦
- 職責鍊模式通常每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該請求,那麼它會把相同的請求傳給下一個接收者,依此類推。
- 這種類型的設計模式屬于行為型模式
職責鍊模式的注意事項和細 節
1) 将請求和處理分開,實作解耦,提高系統的靈活性
2) 簡化了對象,使對象不需要知道鍊的結構
3) 性能會受到影響,特别是在鍊比較長的時候,是以需控制鍊中最大節點數量,一般通過在Handler中設定一個最大節點數量,在setNext()方法中判斷是否已經超過閥值,超過則不允許該鍊建立,避免出現超長鍊無意識地破壞系統性能
4) 調試不友善。采用了類似遞歸的方式,調試時邏輯可能比較複雜
5) 最佳應用場景:有多個對象可以處理同一個請求時,比如:多級請求、請假/加薪等審批流程、Java Web中Tomcat對Encoding的處理、攔截器。