6.js模式-中介者模式

1. 中介者模式

所有对象通过中介者进行通信

var playDirector = (function(){

      var players = [];

      var options = {};

     

      options.add = function(p){

             players.push(p);

      }

     

      options.die = function(p){

             for(var i = 0;i<players.length;i++){

                    if(players[i] === p){

                           players.splice(i,1);

                    }else{

                           players[i].die('die');

                    }

             }

      }

     

      var receiveMsg = function(){

             var key = Array.prototype.shift.call(arguments);

            

             options[key].apply(this,arguments);

      }

     

      return {

             receiveMsg:receiveMsg

      }

})();

function play(name){

      this.name = name;

      this.state = 'alive';

}

play.prototype.die = function(){

      this.state = 'die';

      playDirector.receiveMsg('die',this);

}

play.prototype.receive = function(msg){

      console.log(msg);

}

原文地址:https://www.cnblogs.com/SLchuck/p/4869716.html