1. 程式人生 > >設計模式之責任鏈模式

設計模式之責任鏈模式

設計模式 責任鏈模式 chain of responsibility

1、責任鏈模式 chainOfResponsiblity :


a、責任鏈模式屬於行為型模式,行為型模式關註系統中對象之間的相互交互,研究系統在運行時對象之間的相互通信和協作,進一步明確對象的職責,共有11中模式。


b、責任鏈模式的定義:

將能夠處理同一類請求的對象連成一條鏈,所提交的請求沿著鏈傳遞,鏈上的對象逐個判斷是否有能力處理該請求,如果能則處理,如果不能則傳遞給鏈上的下一個對象。


c、增加新的處理對象:

由於責任鏈的創建完全在客戶端中,因此新增新的具體處理者對原有類庫沒有任何影響,只需要添加新的類,然後在客戶端中調用時添加即可,符合開閉原則。


2、簡單的代碼演示:


a、下面五張圖中,可以看到,Leader 抽象類中有一個 proctected 範圍的 nextLeader 成員變量,並且提供一個 set 方法。 Director 類、Manager 類、GeneralManger 類都繼承該抽象類。


技術分享


技術分享


技術分享


技術分享


2、看看 Client13 測試類中輸出的結果,以及示例代碼類的主要類圖關系。

技術分享

技術分享


3、責任鏈模式的常見的開發場景:


- Java 中,異常機制就是一種責任鏈模式。一個 try 可以對應多個 catch, 當第一個 catch 不匹配類型時,則自動跳到第二個 catch 中。

- Javascript 語言中,事件的冒泡和捕獲機制。Java 語言中,事件的處理采用觀察者模式。

- Servlet 開發中,過濾器的鏈式處理。

- Struts2 中,攔截器的調用也是典型的責任鏈模式

本文出自 “12392717” 博客,請務必保留此出處http://12402717.blog.51cto.com/12392717/1929225

設計模式之責任鏈模式