1.定義:將一個(gè)請(qǐng)求從鏈?zhǔn)降氖锥纬霭l(fā)沿著鏈的路徑依次傳遞給每個(gè)節(jié)點(diǎn)對(duì)象,直到有對(duì)象處理這個(gè)請(qǐng)求為止,使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免的請(qǐng)求發(fā)送者與接收者之間的耦合關(guān)系,是變成更有靈活性。
2.使用場(chǎng)景:
2.1:有多個(gè)對(duì)象可以處理同一個(gè)請(qǐng)求,具體哪個(gè)對(duì)象處理該請(qǐng)求由運(yùn)行時(shí)刻自動(dòng)確定;
2.2:在不明確指定接收者的情況下向多個(gè)對(duì)象中的一個(gè)提交一個(gè)請(qǐng)求;
2.3:可動(dòng)態(tài)指定一組對(duì)象處理請(qǐng)求
3.優(yōu)缺點(diǎn):
優(yōu)點(diǎn):3.1:降低耦合度,將請(qǐng)求發(fā)送者合接收則解耦
3.2:簡(jiǎn)化了對(duì)象,使對(duì)象不需要知道鏈的結(jié)構(gòu)
3.3:增強(qiáng)給對(duì)象指派職責(zé)的靈活性,通過(guò)改變鏈內(nèi)的成員或則調(diào)動(dòng)它們的次序,允許動(dòng)態(tài)的新增或者刪除責(zé)任;
缺點(diǎn):3.1:不能保證請(qǐng)求一定被接收
3.2:系統(tǒng)性能將受到一定的影響,而且在進(jìn)行代碼調(diào)試時(shí)候不太方便,可能造成循環(huán)調(diào)用
3.3:可能不容易觀察運(yùn)行時(shí)的特征,有礙于出錯(cuò)
4.android源碼中使用
4.1:android中觸摸事件的傳遞機(jī)制,就屬于責(zé)任鏈模式從Activity 到phoneWindow,再到我們自己的RootView以及子View層層傳遞,直到有View消費(fèi)改事件;
4.2:okhttp內(nèi)部使用了責(zé)任鏈模式來(lái)完成interceptor攔截器的調(diào)用;
5.實(shí)例演示公司中請(qǐng)求報(bào)銷費(fèi)用例子,不同領(lǐng)導(dǎo)可以批放不同的額度報(bào)銷,職員提交后,申請(qǐng)由下往上傳遞的,直到有領(lǐng)導(dǎo)出現(xiàn)申請(qǐng)
5.1創(chuàng)建領(lǐng)導(dǎo)基類:
5.2創(chuàng)建不同層級(jí)領(lǐng)導(dǎo)實(shí)現(xiàn)類,依次為組長(zhǎng),主管
5.3創(chuàng)建不同的領(lǐng)導(dǎo)對(duì)象,關(guān)聯(lián)責(zé)任鏈,進(jìn)行報(bào)銷申請(qǐng)
責(zé)任鏈模式
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 1. 定義 將一個(gè)請(qǐng)求從鏈?zhǔn)降氖锥税l(fā)出,沿著鏈的路徑依次傳遞給每個(gè)節(jié)點(diǎn)對(duì)象,直到有對(duì)象處理這個(gè)請(qǐng)求為止,使多個(gè)對(duì)象...
- 責(zé)任鏈模式(Chain of Responsibility) 在現(xiàn)實(shí)生活中,常常會(huì)出現(xiàn)這樣的事例:一個(gè)請(qǐng)求有多個(gè)對(duì)...
- 一、責(zé)任鏈模式的定義二、責(zé)任鏈模式的使用場(chǎng)景三、責(zé)任鏈模式UML類圖四、責(zé)任鏈模式具體實(shí)例五、責(zé)任鏈模式代碼實(shí)現(xiàn) ...
- 責(zé)任鏈模式的介紹 ? 責(zé)任鏈模式(Iterator Pattren),是行為型設(shè)計(jì)模式之一。什么是“鏈”?我們...
- 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂愁,有人驚喜有人失落,有的覺(jué)得收獲滿滿有...