6.js模式-中介者模式

时间:2023-03-09 06:55:36
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);

}