• 技术文章 >Web开发 >JavaScript

    js中介者模式是什么意思?

    小妮浅浅小妮浅浅2021-08-02 10:06:16原创3806

    现实生活中,航线上的飞机只需要与机场的塔沟通就可以确定航线和飞行状态,而不需要与所有飞机沟通。同时,塔作为中介,知道每架飞机的飞行状态,可以安排所有飞机的起降和航线。

    概念

    1、通过一个中介对象,所有其他相关对象都通过中介对象通信,而不是相互引用。

    2、当一个对象发生变化时,只需通知中介对象。通过中介模式,可以解除对象与对象之间的耦合关系。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>Document</title>

    </head>

    <body>

    <p>1 0 30</p>

    <div id="results"></div>

    <script>

    //Mediator

    //这里用了构造器模式

    function Player(name) {

    this.name = name;

    this.point = 0;

    }

    Player.prototype.play = function() {

    this.point += 1;

    mediator.played();

    }

      

    var scoreboard = {

    ele : document.getElementById("results"),

      

    update : function(score) {

    var i, msg = "";

    for(i in score) {

    if(score.hasOwnProperty(i)) {

    msg += "<p><strong>" + i + "</strong>";

    msg += score[i];

    msg += "</p>";

    }

    }

    this.ele.innerHTML = msg;

    }

    };

      

    var mediator = {

      

    players : {},

      

    setup : function() {

      

    var player = this.players;

    player.home = new Player("Home");

    player.guest = new Player("Guest");

    },

      

    played : function() {

      

    var player = this.players;

    score = {

    Home : player.home.point,

    Guest : player.guest.point

    };

    scoreboard.update(score);

    },

      

    keypress : function(e) {

    e = e || window.event;    //事件监听

    if(e.which === 49) {

    mediator.players.home.play();

    }

    if(e.which === 48) {

    mediator.players.guest.play();

    }

    }

    };

      

    mediator.setup();

    window.onkeypress = mediator.keypress;

      

    setTimeout(function(){

    window.onkeypress = null;

    console.log("game over!");

    }, 30000);

    </script>

    </body>

    </html>

    以上就是js中介者模式的意思,希望对大家有所帮助。更多js学习指路:js教程

    推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

    专题推荐:js中介者模式
    上一篇:js策略模式是什么? 下一篇:js中介者模式的使用场景

    相关文章推荐

    • Js值传递和引用传递的不同• js中every方法怎么用?• js some方法是什么• js中reduce在数组的使用• js单例模式如何理解• js策略模式是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网