久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java設(shè)計模式之責(zé)任鏈模式

 一守望先鋒一 2019-08-16

責(zé)任鏈模式很容易理解,,比如說古代的時候,前方戰(zhàn)線的信息的傳遞,,首先是前線將軍將戰(zhàn)況交給通信兵,,接下來通信兵不能為當(dāng)前的狀況作出指令,于是乎跑到了京城把信息交給了大臣,,大臣也不能做決定,,于是又把信息交給了皇帝,。最終皇帝處理當(dāng)前的戰(zhàn)況信息,。這就是責(zé)任鏈模式。整個的處理過程就像是一條鏈一樣,。

一、認(rèn)識責(zé)任鏈模式

1,、概念:

將多個對象通過引用連接起來形成一條鏈,。請求在這個鏈上傳遞,,直到鏈上的某一個對象決定處理此請求,。對于客戶來說并不知道請求在哪一個環(huán)節(jié)被處理了,。從而實現(xiàn)了請求和處理之間的解耦合。

這條鏈其實有很多種,,比如說就是一條直直的鏈,,或者是一條環(huán)形鏈,,再或者是一棵樹,。

2、類圖

我們通過上面的例子來看一下類圖

從上圖可以看到里面一共涉及到了三個角色:

(1)Handler:抽象處理者。它規(guī)范了每一個具體處理者的信息,。

(2)ConcreteHandler:具體處理者,。可以自己處理,,也可以交給自己的下家處理。

(3)Client:客戶端。向處理者提交請求對象,。

下面我們就代碼實現(xiàn)一下:

二,、代碼實現(xiàn)責(zé)任鏈模式

第一步:抽象處理者

第二步:指定具體處理者

首先是士兵:

然后是大臣

最后是皇帝:

這里我們可以發(fā)現(xiàn),我們可以為每一個具體實現(xiàn)者設(shè)置下一任繼承者,,當(dāng)然到達食物鏈最頂尖的那個可以不設(shè)置。

第三步:客戶端調(diào)用

我們在這里指定了士兵的下一任處理者是大臣,,大臣的下一任處理者是皇帝,,沒有為皇帝指派下一任處理者,輸出來的結(jié)果就是這樣,。不過還有一種情況,,也就是五百里加急的情報,,士兵可以直接上報給皇帝處理,不經(jīng)過大臣,。這種方式也是可以的。

三,、分析責(zé)任鏈模式

優(yōu)點

1)降低耦合度:客戶端不知道請求由哪個處理者處理,,而處理者也可以指派任意的繼承者去處理,。

2)良好的擴展性:我們可以很方便的增加處理者

缺點

1)責(zé)任鏈比較長的時候會影響系統(tǒng)性能,。因為中間的處理者可能太多了,就好比貪官把國家撥得錢一層一層搜刮,,到最后就剩下一點點了。

2)當(dāng)出現(xiàn)錯誤的時候,,我們必須按照這個鏈一層一層去解決處理。

這個責(zé)任鏈模式在實際當(dāng)中有什么應(yīng)用呢,?最典型的就是Tomcat中的Filter,,當(dāng)然異常處理的設(shè)計一般也會用到責(zé)任鏈模式,。

OK,,責(zé)任鏈模式就是這樣,。如有問題還請批評指正。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多