設計模式之Mediator(仲介者)

原创 2004年06月24日 20:12:00

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

我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)

假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片。但是我们不能把所有的功能罗列到一个tab上,虽...
  • LCL_data
  • LCL_data
  • 2013年07月27日 14:15
  • 6656

浅谈JAVA设计模式之——中介者模式(Mediator)

一、概述 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 二、适用性 1.一组对象以定义良好但是复杂的方式进行通信。产生...
  • l1028386804
  • l1028386804
  • 2015年05月09日 12:43
  • 1530

设计模式之中介者模式(Mediator)摘录

设计模式之中介者模式(Mediator)摘录!
  • fengbingchun
  • fengbingchun
  • 2014年06月29日 20:24
  • 1720

运用Mediator设计模式的登录对话框

  • 2013年10月04日 16:57
  • 8KB
  • 下载

设计模式之中介者模式(Mediator Pattern)

  • 2012年03月03日 11:59
  • 46KB
  • 下载

设计模式之中介者模式(Mediator)

  • 2011年07月07日 09:38
  • 12KB
  • 下载

C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式 (Level 300)

  • 2008年09月16日 14:41
  • 7.67MB
  • 下载

Mediator中介者(行为型设计模式)

依赖关系的变化   动机(Motivation) 在软件构建过程中,经常会初现多个uixiang互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种...
  • hjf19790118
  • hjf19790118
  • 2011年10月16日 15:19
  • 260

Mediator(中介者)设计模式

一、概念 用一个中介者对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。 二、模式结构图...
  • Sharing_Li
  • Sharing_Li
  • 2015年12月12日 21:23
  • 429

GoF设计模式学习笔记 第一回 Mediator

Mediator就是一个起到调节作用的类。 假设有A,B,C,D四个类,每个类都于其他三个类有关系。 这样的话,每当有一个类发生变化时,都会关系到其他的三个类,还要进行相应的测试。 当需要增加一...
  • nocyou521
  • nocyou521
  • 2012年06月18日 09:40
  • 421
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:設計模式之Mediator(仲介者)
举报原因:
原因补充:

(最多只允许输入30个字)