首頁常見問題正文

責(zé)任鏈設(shè)計(jì)模式的優(yōu)點(diǎn)和缺點(diǎn)是什么?

更新時(shí)間:2023-05-24 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

責(zé)任鏈設(shè)計(jì)模式是為了避免請求發(fā)送者與多個(gè)請求處理者耦合在一起,將所有請求的處理者通過前一對象記住其下一個(gè)對象的引用而連成一條鏈;當(dāng)有請求發(fā)生時(shí),可將請求沿著這條鏈傳遞,直到有對象處理它為止。

責(zé)任鏈設(shè)計(jì)模式

抽象處理者(Handler)角色:定義一個(gè)處理請求的接口,包含抽象處理方法和一個(gè)后繼連接。

具體處理者(Concrete Handler)角色:實(shí)現(xiàn)抽象處理者的處理方法,判斷能否處理本次請求,如果可以處理請求則處理,否則將該請求轉(zhuǎn)給它的后繼者。

客戶類(Client)角色:創(chuàng)建處理鏈,并向鏈頭的具體處理者對象提交請求,它不關(guān)心處理細(xì)節(jié)和請求的傳遞過程。

責(zé)任鏈設(shè)計(jì)模式處理訂單的操作

優(yōu)點(diǎn):降低了對象之間的耦合度增強(qiáng)了系統(tǒng)的可擴(kuò)展性增強(qiáng)了給對象指派職責(zé)的靈活性責(zé)任鏈簡化了對象之間的連接責(zé)任分擔(dān)

缺點(diǎn):對比較長的職責(zé)鏈,請求的處理可能涉及多個(gè)處理對象,系統(tǒng)性能將受到一定影響。職責(zé)鏈建立的合理性要靠客戶端來保證,增加了客戶端的復(fù)雜性,可能會(huì)由于職責(zé)鏈的錯(cuò)誤設(shè)置而導(dǎo)致系統(tǒng)出錯(cuò),如可能會(huì)造成循環(huán)調(diào)用。

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!