中介者模式,这个概念好理解,就是中介呗。 中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的相关对象通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要
中介者模式,这个概念好理解,就是中介呗。
中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的相关对象通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可。中介者使各对象之间耦合松散,而且可以独立地改变他们之间的交互。中介者模式使网状的多对多关系变成了相对简单的一对多关系。
举例:飞机a要降落,他不是直接告诉也要降落的飞机b,而是告诉塔台,给他说,让它告诉飞机b它要降落。
var Plane = function(name){ this.name = name;}Plane.prototype.send = function(msg, to){ tatai.send(msg, to); // 飞机不是把信息直接发给飞机,而是发给塔台}Plane.prototype.receive = function(msg){ console.log(this.name + '[接受到]' + msg);}var tower = { planes:{}, regedit: function(p){ this.planes[p.name] = p; }, send: function(msg, to){ this.planes[to.name].receive(msg); }};var p1 = new Plane('p1');var p2 = new Plane('p2');tower.regedit(p1);tower.regedit(p2);p1.send('我要降落', p2);