资讯专栏INFORMATION COLUMN

javascript之中介者模式

LucasTwilight / 3170人阅读

摘要:中介者模式中介者模式对象和对象之间借助第三方中介者进行通信。将就用下这个这个函数充当中介者挑戰成功挑战失败选手选手选手选手挑战成功选手挑战成功选手挑战失败在这段代码中之间没有直接发生关系而是通过另外的对象建立链接姑且将之当成是中介者模式了。

中介者模式

中介者模式: 对象和对象之间借助第三方中介者进行通信。


场景 demo
一场测试结束后, 公布结果: 告知解答出题目的人挑战成功, 否则挑战失败。

    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, 这个函数充当中介者
      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+"挑戰成功;")
          }
          for(let loser of loseArr){
            console.log(loser+"挑战失败;")
          }
        }
      }
    }())
    const a = new player("A选手")
    const b = new player("B选手")
    const c = new player("C选手")
    a.win()
    b.lose()
    c.win()
    // A 选手挑战成功;
// B 选手挑战成功;
// C 选手挑战失败;

在这段代码中 A、B、C 之间没有直接发生关系, 而是通过另外的 playerMiddle 对象建立链接, 姑且将之当成是中介者模式了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106757.html

相关文章

  • JavaScript设计模式发布-订阅模式(观察者模式)-Part2

    摘要:设计模式与开发实践读书笔记。看此文章前,建议先看设计模式之发布订阅模式观察者模式在中,已经介绍了什么是发布订阅模式,同时,也实现了发布订阅模式。 《JavaScript设计模式与开发实践》读书笔记。 看此文章前,建议先看JavaScript设计模式之发布-订阅模式(观察者模式)-Part1 在Part1中,已经介绍了什么是发布-订阅模式,同时,也实现了发布-订阅模式。但是,就Part1...

    Charlie_Jade 评论0 收藏0
  • JavaScript设计模式发布-订阅模式(观察者模式)-Part2

    摘要:设计模式与开发实践读书笔记。看此文章前,建议先看设计模式之发布订阅模式观察者模式在中,已经介绍了什么是发布订阅模式,同时,也实现了发布订阅模式。 《JavaScript设计模式与开发实践》读书笔记。 看此文章前,建议先看JavaScript设计模式之发布-订阅模式(观察者模式)-Part1 在Part1中,已经介绍了什么是发布-订阅模式,同时,也实现了发布-订阅模式。但是,就Part1...

    cppprimer 评论0 收藏0
  • JavaScript设计模式发布-订阅模式(观察者模式)-Part2

    摘要:设计模式与开发实践读书笔记。看此文章前,建议先看设计模式之发布订阅模式观察者模式在中,已经介绍了什么是发布订阅模式,同时,也实现了发布订阅模式。 《JavaScript设计模式与开发实践》读书笔记。 看此文章前,建议先看JavaScript设计模式之发布-订阅模式(观察者模式)-Part1 在Part1中,已经介绍了什么是发布-订阅模式,同时,也实现了发布-订阅模式。但是,就Part1...

    chemzqm 评论0 收藏0
  • 设计模式观察者(发布/订阅)模式

    摘要:发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系。事件观察者模式应该是最常用的模式之一。总之,当消息一发布,所有的订阅者都会收到消息。发布订阅模式还可以用来帮助实现一些别的设计模式,比如中介者模式。 发布/订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系。当一个对象的状态(发布者)发生改变时,所有依赖于它的对象都将得到通知。在 JavaScript 开发中,我们...

    dreamGong 评论0 收藏0
  • 前端开发中常用的javascript设计模式

    摘要:代理模式,迭代器模式,单例模式,装饰者模式最少知识原则一个软件实体应当尽可能少地与其他实体发生相互作用。迭代器模式可以将迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即不用关心对象内部构造也可以按顺序访问其中的每个元素。 接手项目越来越复杂的时候,有时写完一段代码,总感觉代码还有优化的空间,却不知道从何处去下手。设计模式主要目的是提升代码可扩展性以及可阅读性。 本文主要以例子的...

    赵春朋 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<