定義:責(zé)任鏈模式為某個(gè)請求創(chuàng)建一個(gè)對象鏈亏推,每個(gè)對象依次檢查此請求学赛,并對其進(jìn)行處理,或者將它傳給鏈中的下一個(gè)對象吞杭。
責(zé)任鏈模式中的結(jié)構(gòu)和鏈表的結(jié)構(gòu)相差無幾盏浇,唯一的區(qū)別便是責(zé)任鏈模式中的所有對象 都有一個(gè)共同的父類(或接口)。
總結(jié)
責(zé)任鏈模式將常用于過濾器芽狗,攔截器绢掰,事件(鼠標(biāo)鍵盤事件,冒泡事件等)等場景
優(yōu)點(diǎn)
請求者和接收者解耦
可以動(dòng)態(tài)的增加或減少責(zé)任鏈上的對象童擎,或者修改順序
缺點(diǎn)
調(diào)用者不知道請求可能被哪些責(zé)任鏈對象處理滴劲,不利于排錯(cuò)
用戶請求可能被責(zé)任鏈中途攔截,最終未必被真正執(zhí)行顾复,這點(diǎn)既是優(yōu)點(diǎn)也是缺點(diǎn)班挖,我們可以利用它做權(quán)限控制攔截器