在職責鏈模式中,多個處理器依次處理同乙個請求。乙個請求先經過 a 處理器處理,然後再把請求傳遞給 b 處理器,b 處理器處理完後再傳遞給 c 處理器,以此類推,形成乙個鏈條。鏈條上的每個處理器各自承擔各自的處理職責,所以叫作職責鏈模式。
在 gof 的定義中,一旦某個處理器能處理這個請求,就不會繼續將請求傳遞給後續的處理器了。當然,在實際的開發中,也存在對這個模式的變體,那就是請求不會中途終止傳遞,而是會被所有的處理器都處理一遍。
職責鏈模式有兩種常用的實現。一種是使用鍊錶來儲存處理器,另一種是使用陣列來儲存處理器,後面一種實現方式更加簡單。
職責鏈模式常用在框架開發中,用來實現框架的過濾器、***功能,讓框架的使用者在不需要修改框架原始碼的情況下,新增新的過濾攔截功能。這也體現了之前講到的對擴充套件開放、對修改關閉的設計原則。
職責鏈模式
1.職責鏈 namespace dutychainpattern 用來處理請求 public abstract void transmitrequest int request 班主任 職責鏈上的乙個節點,在裡面進行判斷,看能否處理請求,不能則將請求轉移 public class classadvi...
職責鏈模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
職責鏈模式
劇情簡要 學習此模式,讓筆者聯想到自然界的生物鏈。打個比方 大魚吃小魚,小魚吃蝦公尺。河裡的小蝦公尺問大魚,你要不要吃我啊?大魚說 你太小了,吃了 沒吃,return 懶得吃!然後蝦公尺又問小魚 小螃蟹 小河馬同樣的問題。其實如果小蝦公尺這麼想自我了結的話,根本不用這麼費勁。這就開始了我們職責鏈模式...