成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript之中介者模式

LucasTwilight / 3281人閱讀

摘要:中介者模式中介者模式對象和對象之間借助第三方中介者進行通信。將就用下這個這個函數(shù)充當中介者挑戰(zhàn)成功挑戰(zhàn)失敗選手選手選手選手挑戰(zhàn)成功選手挑戰(zhàn)成功選手挑戰(zhàn)失敗在這段代碼中之間沒有直接發(fā)生關系而是通過另外的對象建立鏈接姑且將之當成是中介者模式了。

中介者模式

中介者模式: 對象和對象之間借助第三方中介者進行通信。


場景 demo
一場測試結(jié)束后, 公布結(jié)果: 告知解答出題目的人挑戰(zhàn)成功, 否則挑戰(zhàn)失敗。

    const player = function(name) {
      this.name = name
      playerMiddle.add(name)
    }
    player.prototype.win = function() {
      playerMiddle.win(this.name)
    }
    player.prototype.lose = function(){
      playerMiddle.lose(this.name)
    }
    const playerMiddle =(function(){ //將就用下這個demo, 這個函數(shù)充當中介者
      const players =[]
      const winArr = []
      const loseArr = []
      return {
        add: function(name) {
          players.push(name)
        },
        win: function(name){
          winArr.push(name)
          if(winArr.length + loseArr.length === players.length){
            this.show()
          }
        },
        lose: function(name){
          loseArr.push(name)
          if(winArr.length + loseArr.length === players.length){
            this.show()
          }
        },
        show: function(){
          for(let winner of winArr){
            console.log(winner+"挑戰(zhàn)成功;")
          }
          for(let loser of loseArr){
            console.log(loser+"挑戰(zhàn)失敗;")
          }
        }
      }
    }())
    const a = new player("A選手")
    const b = new player("B選手")
    const c = new player("C選手")
    a.win()
    b.lose()
    c.win()
    // A 選手挑戰(zhàn)成功;
// B 選手挑戰(zhàn)成功;
// C 選手挑戰(zhàn)失敗;

在這段代碼中 A、B、C 之間沒有直接發(fā)生關系, 而是通過另外的 playerMiddle 對象建立鏈接, 姑且將之當成是中介者模式了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106757.html

相關文章

  • JavaScript設計模式發(fā)布-訂閱模式(觀察者模式)-Part2

    摘要:設計模式與開發(fā)實踐讀書筆記??创宋恼虑埃ㄗh先看設計模式之發(fā)布訂閱模式觀察者模式在中,已經(jīng)介紹了什么是發(fā)布訂閱模式,同時,也實現(xiàn)了發(fā)布訂閱模式。 《JavaScript設計模式與開發(fā)實踐》讀書筆記。 看此文章前,建議先看JavaScript設計模式之發(fā)布-訂閱模式(觀察者模式)-Part1 在Part1中,已經(jīng)介紹了什么是發(fā)布-訂閱模式,同時,也實現(xiàn)了發(fā)布-訂閱模式。但是,就Part1...

    Charlie_Jade 評論0 收藏0
  • JavaScript設計模式發(fā)布-訂閱模式(觀察者模式)-Part2

    摘要:設計模式與開發(fā)實踐讀書筆記。看此文章前,建議先看設計模式之發(fā)布訂閱模式觀察者模式在中,已經(jīng)介紹了什么是發(fā)布訂閱模式,同時,也實現(xiàn)了發(fā)布訂閱模式。 《JavaScript設計模式與開發(fā)實踐》讀書筆記。 看此文章前,建議先看JavaScript設計模式之發(fā)布-訂閱模式(觀察者模式)-Part1 在Part1中,已經(jīng)介紹了什么是發(fā)布-訂閱模式,同時,也實現(xiàn)了發(fā)布-訂閱模式。但是,就Part1...

    chemzqm 評論0 收藏0
  • 設計模式觀察者(發(fā)布/訂閱)模式

    摘要:發(fā)布訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關系。事件觀察者模式應該是最常用的模式之一。總之,當消息一發(fā)布,所有的訂閱者都會收到消息。發(fā)布訂閱模式還可以用來幫助實現(xiàn)一些別的設計模式,比如中介者模式。 發(fā)布/訂閱模式又叫觀察者模式,它定義對象間的一種一對多的依賴關系。當一個對象的狀態(tài)(發(fā)布者)發(fā)生改變時,所有依賴于它的對象都將得到通知。在 JavaScript 開發(fā)中,我們...

    dreamGong 評論0 收藏0
  • 前端開發(fā)中常用的javascript設計模式

    摘要:代理模式,迭代器模式,單例模式,裝飾者模式最少知識原則一個軟件實體應當盡可能少地與其他實體發(fā)生相互作用。迭代器模式可以將迭代的過程從業(yè)務邏輯中分離出來,在使用迭代器模式之后,即不用關心對象內(nèi)部構(gòu)造也可以按順序訪問其中的每個元素。 接手項目越來越復雜的時候,有時寫完一段代碼,總感覺代碼還有優(yōu)化的空間,卻不知道從何處去下手。設計模式主要目的是提升代碼可擴展性以及可閱讀性。 本文主要以例子的...

    趙春朋 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<