中介者模式
中介者模式(Mediator Pattern):定義一個中介對象來封裝系列對象之間的交互。中介者使各個對象不需要顯示地相互引用,從而使其耦合性松散,而且可以獨立地改變他們之間的交互。
(注意:中介者模式和代理模式字面意思相近,但卻是完全不同的模式)
模式作用:
- 在軟件開發中,中介者是一個行為設計模式,通過提供一個統一的接口讓系統不同部分進行通信.一般,如果系統有很多子模塊需要直接溝通,都要創建一個中央控制點讓其各模塊通過中央控制點進行交互.中介者模式可以讓這些子模塊不需要直接溝通,從而達到進行解耦的目的.
注意事項:
- 當系統出現了多對多交互復雜的對象群時,先不急于使用中介者模式,而是思考一下是不是系統設計有問題.
例子:
//飛機
var feiji=function(name){
this.name=name;
}
feiji.prototype.send=function(msg,to){
console.log(this.name+"發送了信息")
tatai.send(msg,to)
}
feiji.prototype.jieshou=function(msg){
console.log(this.name+"[接收到]"+msg)
}
//塔臺
var tatai={
all:{},
zhuce:function(f){
this.all[f.name]=f;
},send:function(msg,to){
this.all[to.name].jieshou(msg)
}
}
var feiji1=new feiji("feiji1");
var feiji2=new feiji("feiji2");
tatai.zhuce(feiji1);
tatai.zhuce(feiji2);
feiji1.send('我馬上降落,還有200米',feiji2)
//feiji1發送了信息
//feiji2[接收到]我馬上降落,還有200米