設計模式之Mediator(仲介者)

Mediator定義:
用一個仲介物件來封裝一系列關於物件交互行爲。

爲何使用Mediator?
各個物件之間的交互操作非常多;每個物件的行爲操作都依賴彼此對方,修改一個物件的行爲,同時會涉及到修改很多其他物件的行爲,如果使用Mediator模式,可以使各個物件間的耦合鬆散,只需關心和 Mediator的關係,使多對多的關係變成了一對多的關係,可以降低系統的複雜性,提高可修改擴展性。

如何使用?

首先 有一個介面,用來定義成員物件之間的交互聯繫方式:

public interface Mediator { }

Meiator具體實現,真正實現交互操作的內容:

public class ConcreteMediator implements Mediator {

   //假設當前有兩個成員.
  
private ConcreteColleague1 colleague1 = new ConcreteColleague1();
   private ConcreteColleague2 colleague2 = new ConcreteColleague2();

   ...

}

再看看另外一個參與者:成員,因爲是交互行爲,都需要雙方提供一些共同介面,這種要求在Visitor Observer等模式中都是相同的。

public class Colleague {
  
private Mediator mediator;
  
public Mediator getMediator() {
     
return mediator;
  
}

  
public void setMediator( Mediator mediator ) {
     
this.mediator = mediator;
  
}
}

public class ConcreteColleague1 { }

public class ConcreteColleague2 { }

每個成員都必須知道Mediator,並且和 Mediator聯繫,而不是和其他成員聯繫。

至此,Mediator模式框架完成,可以發現Mediator模式規定不是很多,大體框架也比較簡單,但實際使用起來就非常靈活。

Mediator模式在事件驅動類別應用中比較多,例如介面設計GUI.;聊天,消息傳遞等,在聊天應用中,需要有一個MessageMediator,專門負責request/reponse之間任務的調節。

MVCJ2EE的一個基本模式,View Controller是一種Mediator,它是Jsp和伺服器上應用程式間的Mediator

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值