麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

深入淺出基于Java的責(zé)任鏈模式

2024-07-14 08:44:03
字體:
供稿:網(wǎng)友

  一、引言

  初看責(zé)任鏈模式,心里不禁想起了一個(gè)以前聽過的相聲:看牙。說的是一個(gè)病人看牙的時(shí)候,醫(yī)生不小心把拔下的一個(gè)牙掉進(jìn)了病人嗓子里。病人因此樓上樓下的跑了好多科室,最后無果而終。

  責(zé)任鏈模式就是這種“推卸”責(zé)任的模式,你的問題在我這里能解決我就解決,不行就把你推給另一個(gè)對(duì)象。至于到底誰解決了這個(gè)問題了呢?我管呢!

  二、定義與結(jié)構(gòu)

  從名字上大概也能猜出這個(gè)模式的大概模樣——系統(tǒng)中將會(huì)存在多個(gè)有類似處理能力的對(duì)象。當(dāng)一個(gè)請(qǐng)求觸發(fā)后,請(qǐng)求將在這些對(duì)象組成的鏈條中傳遞,直到找到最合適的“責(zé)任”對(duì)象,并進(jìn)行處理。

  《設(shè)計(jì)模式》中給它的定義如下:使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理它為止。

  從定義上可以看出,責(zé)任鏈模式的提出是為了“解耦”,以應(yīng)變系統(tǒng)需求的變更和不明確性。

  下面是《設(shè)計(jì)模式》中給出的適用范圍:

  1) 有多個(gè)的對(duì)象可以處理一個(gè)請(qǐng)求,哪個(gè)對(duì)象處理該請(qǐng)求運(yùn)行時(shí)刻自動(dòng)確定。

  2) 你想在不明確指定接收者的情況下,向多個(gè)對(duì)象中的一個(gè)提交一個(gè)請(qǐng)求。

  3) 可處理一個(gè)請(qǐng)求的對(duì)象集合應(yīng)被動(dòng)態(tài)指定。

  責(zé)任鏈模式真的能給發(fā)送者和接收者之間解耦(這好像很神奇)嗎?先來看下它的組成角色。這個(gè)問題我會(huì)在下面提及。

  責(zé)任鏈模式由兩個(gè)角色組成:

  1) 抽象處理者角色(Handler):它定義了一個(gè)處理請(qǐng)求的接口。當(dāng)然對(duì)于鏈子的不同實(shí)現(xiàn),也可以在這個(gè)角色中實(shí)現(xiàn)后繼鏈。

  2) 具體處理者角色(Concrete Handler):實(shí)現(xiàn)抽象角色中定義的接口,并處理它所負(fù)責(zé)的請(qǐng)求。如果不能處理則訪問它的后繼者。

  至于類圖不放也罷。畢竟就是一個(gè)繼承或者實(shí)現(xiàn)。

  三、純與不純

  責(zé)任鏈模式的純與不純的區(qū)別,就像黑貓、白貓的區(qū)別一樣。不要刻意的去使自己的代碼來符合一個(gè)模式的公式。只要能夠使代碼降低耦合、提高重用,滿足系統(tǒng)需求并能很好的適應(yīng)變化就好了。正所謂:管它黑貓白貓,抓住老鼠就是好貓!

  純的責(zé)任鏈模式,規(guī)定一個(gè)具體處理者角色只能對(duì)請(qǐng)求作出兩種動(dòng)作:自己處理;傳給下家。不能出現(xiàn)處理了一部分,把剩下的傳給了下家的情況。而且請(qǐng)求在責(zé)任鏈中必須被處理,而不能出現(xiàn)無果而終的結(jié)局。

  反之,則就是不純的責(zé)任鏈模式。

  不純的責(zé)任鏈模式還算是責(zé)任鏈模式嗎?比如一個(gè)請(qǐng)求被捕獲后,每個(gè)具體處理者都嘗試去處理它,不管結(jié)果如何都將請(qǐng)求再次轉(zhuǎn)發(fā)。我認(rèn)為這種方式的實(shí)現(xiàn),算不算是責(zé)任鏈模式的一種倒不重要,重要的是我們也能從中體味到責(zé)任鏈模式的思想:通過將多個(gè)處理者之間建立聯(lián)系,來達(dá)到請(qǐng)求與具體的某個(gè)處理者的解耦。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文亚洲视频 | av免费在线播放网址 | 久久精品视频69 | 久久久一区二区三区精品 | 精品国产一区二区三区久久久蜜月 | 鲁丝一区二区二区四区 | 久成人| 婷婷久久综合九色综合色多多蜜臀 | 免费在线观看成年人视频 | 国产精品久久久久久久娇妻 | 91社区电影 | 色999国产| 成人免费看片a | 精品一区二区久久久久久按摩 | 成人午夜精品久久久久久久蜜臀 | 天天草夜夜 | h色网站在线观看 | 欧美黑人xx | 日本成人高清视频 | lutube成人福利在线观看污 | 久久免费视频8 | 日韩一级成人 | www国产成人免费观看视频,深夜成人网 | 亚洲午夜一区二区三区 | 黄色一级片免费在线观看 | 欧美成人免费一级 | 91精品成人福利在线播放 | 国产成人小视频在线观看 | 欧美极品欧美精品欧美视频 | 女教师~淫辱の动漫在线 | 欧洲狠狠鲁 | 婷婷久久综合九色综合色多多蜜臀 | 国产精品1区 | 国产999精品久久久久 | 日本网站在线播放 | 欧美成人黄色小视频 | 激情综合视频 | 49vv看片免费 | 国产人成精品一区二区三 | 72pao成人国产永久免费视频 | 激情综合网俺也去 |