職責鏈模式

定義

使多個對象都有機會處理請求,將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止跛梗。

要點

  • 職責鏈模式只需要知道鏈中的第一個節(jié)點,從而弱化了發(fā)送者和一組接收者之間的強聯(lián)繫柿顶。
  • 異步的職責鏈:需要給職責鏈節(jié)點對象增加一個手動傳遞請求到下一個節(jié)點的方法(而不是根據(jù)返回值來判斷是否繼續(xù)傳遞請求)茄袖。
  • 職責鏈模式中的節(jié)點對象可以靈活地拆分重組:增加或者刪除一個節(jié)點,或者改變節(jié)點在鏈中的位置都是輕而易舉的事情嘁锯。
  • 職責鏈模式也可以手動指定起始節(jié)點宪祥。
  • 對於所有對象都不能處理請求的情況,可以在鏈尾增加一個保底的接受者節(jié)點來處理家乘,例如拋出一個錯誤異常蝗羊。
  • 從性能方面考慮,要避免過長的職責鏈帶來的性能損耗仁锯。

核心代碼

\\ 高階函數(shù)實現(xiàn)職責鏈耀找,約定返回 'nextSuccessor' 代表「繼續(xù)傳遞請求」
Function.prototype.after = function(fn) {
    var self = this;
    return function() {
        var ret = self.apply(this, arguments);
        if (ret === 'nextSuccessor') {
            return fn.apply(this, arguments);
        }
        return ret;
    };
};

var order = order500.after(order200).after(orderNormal);
order(1, true, 500);
\\ 手動傳遞請求到下一個節(jié)點的方法
Chain.prototype.next = function() {
    return this.successor && this.successor.passRequest.apply(this.successor, arguments);
};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子野芒,更是在濱河造成了極大的恐慌蓄愁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狞悲,死亡現(xiàn)場離奇詭異撮抓,居然都是意外死亡,警方通過查閱死者的電腦和手機摇锋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門丹拯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人荸恕,你說我怎么就攤上這事乖酬。” “怎么了融求?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵咬像,是天一觀的道長。 經(jīng)常有香客問我双肤,道長施掏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任茅糜,我火速辦了婚禮七芭,結果婚禮上,老公的妹妹穿的比我還像新娘蔑赘。我一直安慰自己狸驳,他們只是感情好,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布缩赛。 她就那樣靜靜地躺著耙箍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酥馍。 梳的紋絲不亂的頭發(fā)上辩昆,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天,我揣著相機與錄音旨袒,去河邊找鬼汁针。 笑死,一個胖子當著我的面吹牛砚尽,可吹牛的內容都是我干的施无。 我是一名探鬼主播,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼必孤,長吁一口氣:“原來是場噩夢啊……” “哼猾骡!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤兴想,失蹤者是張志新(化名)和其女友劉穎幢哨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體襟企,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嘱么,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年狮含,在試婚紗的時候發(fā)現(xiàn)自己被綠了顽悼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡几迄,死狀恐怖蔚龙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情映胁,我是刑警寧澤木羹,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布,位于F島的核電站解孙,受9級特大地震影響坑填,放射性物質發(fā)生泄漏。R本人自食惡果不足惜弛姜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一脐瑰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廷臼,春花似錦苍在、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莱没,卻和暖如春初肉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饰躲。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工牙咏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人属铁。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓眠寿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焦蘑。 傳聞我的和親對象是個殘疾皇子盯拱,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內容

  • 這一切就是這麼發(fā)生的:維克多在錯誤的時間出現(xiàn)在了錯誤的地點。或者是倒過來說也行狡逢,看你的問是誰宁舰。 儘管時間早就已經(jīng)到...
    AmandaHuang閱讀 2,204評論 0 1
  • 文|貓一姑娘 廣東人喜歡吃“早茶”。 無論是工作日奢浑,還是節(jié)假日我們總能看到酒樓蛮艰、茶樓中坐品早茶的人們∪副耍可能有的朋友...
    貓一姑娘閱讀 1,014評論 7 9
  • 昨天下午壤蚜,全國著名的寫字教育專家胡一帆先生,來我校給全體語文老師做了一場題為“好字好人生”的精彩書法講座徊哑。作為一名...
    726fd54cb168閱讀 1,646評論 0 7
  • 轉眼我已進入第二十五個年頭莺丑,已經(jīng)平淡的走過了生命的4分之一or三分之一著蟹,而我卻還像個長不大的小孩子。 ...
    青春染執(zhí)流年閱讀 200評論 1 0
  • 睡一個好覺梢莽, 做一個好夢萧豆, 夢一個心愿, 愿一個美好昏名, 好一個未來涮雷, 來一個奮斗。 你總說葡粒, 我的夢很美份殿。 我總笑...
    小劇在成長閱讀 238評論 2 4