设计模式袖珍版 连续转载之 - Mediator(中介者)

原创 2005年06月01日 01:10:00
<script type="text/javascript"> google_ad_client ="pub-2141342037947367";google_ad_width = 120;google_ad_height =240;google_ad_format = "120x240_as";google_ad_channel="8570654326";google_color_border = "CCCCCC";google_color_bg ="FFFFFF";google_color_link = "000000";google_color_url ="666666";google_color_text = "333333"; </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
Mediator定义:
用一个中介对象来封装一系列关于对象交互行为.

为何使用Mediator?
各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性.

如何使用?

首先 有一个接口,用来定义成员对象之间的交互联系方式:
程序代码:

public interface Mediator { } 

Meiator具体实现,真正实现交互操作的内容:
程序代码:

  1. public class ConcreteMediator implements Mediator {
  2.    //假设当前有两个成员.
  3.    private ConcreteColleague1 colleague1 = new ConcreteColleague1(); 
  4.    private ConcreteColleague2 colleague2 = new ConcreteColleague2(); 
  5.    ... 

 

再看看另外一个参与者:成员,因为是交互行为,都需要双方提供一些共同接口,这种要求在Visitor Observer等模式中都是相同的.
程序代码:

  1. public class Colleague {
  2.    private Mediator mediator;
  3.    public Mediator getMediator() { 
  4.       return mediator;
  5.    }
  6.    public void setMediator( Mediator mediator ) { 
  7.       this.mediator = mediator; 
  8.    }
  9. }
  10. public class ConcreteColleague1 { }
  11. public class ConcreteColleague2 { }

 

每个成员都必须知道Mediator,并且和 Mediator联系,而不是和其他成员联系.

至此,Mediator模式框架完成,可以发现Mediator模式规定不是很多,大体框架也比较简单,但实际使用起来就非常灵活.

Mediator模式在事件驱动类应用中比较多,例如界面设计GUI.;聊天,消息传递等,在聊天应用中,需要有一个MessageMediator,专门负责request/reponse之间任务的调节.

MVC是J2EE的一个基本模式,View Controller是一种Mediator,它是Jsp和服务器上应用程序间的Mediator.

设计模式学习笔记--中介者模式Mediator pattern(Java版)

一、场景 公司里各个部门的总经理 二、实质 如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系及其复杂,这种对象为“同事对象”。 我们可以引入一个中介者对象,使...

Mediator(中介者)设计模式

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

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

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

《GOF设计模式》—中介者 (MEDIATOR)—Delphi源码示例:Smalltalk/V的应用结构

示例:Smalltalk/V的应用结构 说明: Windows下的Smalltalk/V的应用结构基于中介者结构。在这个环境中,一个应用由一个包含一组窗格(pane)的窗口组成。Vi...

设计模式C++实现(17)——中介者 Mediator

设计模式C++实现(17)——中介者 Mediator

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

概述 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 适用性 1.一组对象以定义良好但是复杂的方式进行通信。...
  • iihero
  • iihero
  • 2012年11月23日 04:59
  • 1587

JAVA设计模式(14):行为型-中介者模式(Mediator)

场景 假如没有总经理。下面三个部门:财务部、市场部、研发部。财务部要发工资,让大家核对公司需要市场需要跟市场部和研发部通气;市场部需要接个新项目,需要研发部处理技术、需要财务部出资金。市场部跟各个部门...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式袖珍版 连续转载之 - Mediator(中介者)
举报原因:
原因补充:

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