職責鏈模式

簡介

職責鏈使多個對象都有機會處理請求避诽,將這些對象連成一條鏈,并沿著這條鏈傳遞該請求璃谨,知道有一個對象
處理他為止沙庐。避免了請求發(fā)送者和接受者之間的耦合。

簡單的職責鏈實現(xiàn)


var Chain=function(fn) {
        this.fn=fn;
        this.successor=null;
    }

    Chain.prototype.setNextSuccessor=function(successor) {
        return this.successor=successor;
    }

    Chain.prototype.passRequest=function() {
        var ret=this.fn.apply(this,arguments);
        if (ret==='nextSuccessor' && this.successor) {
            return this.successor.passRequest.apply(this.successor,arguments);
        }
        return ret;
    }

    //使用
    var fn1=new Chain(function() {
        console.log(1);
        return 'nextSuccessor';
    })

    var fn2=new Chain(function() {
        console.log(2);
        return 'nextSuccessor';
    })

    var fn3=new Chain(function() {
        console.log(3);
    })

    fn1.setNextSuccessor(fn2);
    fn2.setNextSuccessor(fn3);
    fn1.passRequest();

增加對異步請求的處理 可以讓節(jié)點有權(quán)力決定什么時候把請求傳遞給下一個節(jié)點

    Chain.prototype.next=function() {
      if (this.successor) {
          return this.successor.passRequest.apply(this.successor,arguments);
      }
    }

利用AOP實現(xiàn)職責鏈

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;
  }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佳吞,一起剝皮案震驚了整個濱河市拱雏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌底扳,老刑警劉巖铸抑,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異衷模,居然都是意外死亡鹊汛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門阱冶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刁憋,“玉大人,你說我怎么就攤上這事木蹬≈脸埽” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵镊叁,是天一觀的道長尘颓。 經(jīng)常有香客問我,道長晦譬,這世上最難降的妖魔是什么泥耀? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮蛔添,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兜辞。我一直安慰自己迎瞧,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布逸吵。 她就那樣靜靜地躺著凶硅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扫皱。 梳的紋絲不亂的頭發(fā)上足绅,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天捷绑,我揣著相機與錄音,去河邊找鬼氢妈。 笑死粹污,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的首量。 我是一名探鬼主播壮吩,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼加缘!你這毒婦竟也來了鸭叙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拣宏,失蹤者是張志新(化名)和其女友劉穎沈贝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勋乾,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡宋下,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了市俊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杨凑。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖摆昧,靈堂內(nèi)的尸體忽然破棺而出撩满,到底是詐尸還是另有隱情,我是刑警寧澤绅你,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布伺帘,位于F島的核電站廷雅,受9級特大地震影響厉亏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜西壮,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一偶垮、第九天 我趴在偏房一處隱蔽的房頂上張望张咳。 院中可真熱鬧,春花似錦似舵、人聲如沸脚猾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龙助。三九已至,卻和暖如春蛛芥,著一層夾襖步出監(jiān)牢的瞬間提鸟,已是汗流浹背军援。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留称勋,地道東北人胸哥。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像铣缠,于是被迫代替她去往敵國和親烘嘱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容