设计模式目录 >> 当前页

设计模式之Mediator(中介者)

板桥里人 http://www.jdon.com 2002/05/05

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之间任务的调节.

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

java mediator模式_设计模式之Mediator 中介者模式 - 解道Jdon相关推荐

  1. 从java多态到策略模式_设计模式中的多态——策略模式详解

    2. 策略模式详解 2.1 策略模式定义 策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户端而独立的变化. 可以使用多态进行类比来理解策略模 ...

  2. python策略模式_设计模式(python实现):策略模式

    策略模式简单说和小时候我们玩的玩具差不多,一堆零部件通过不同的拼凑构成几个不同的机器人. 1.举个栗子 我们买了一个机器人,同时这个机器人配了三把武器,三把武器可以替换使用 2.Show in Cod ...

  3. java hash 数组_Java数组 哈希表 属性类 -解道Jdon

    数组 哈希表 属性类 动态小数据操作是WEB开发中不可避免的,这就涉及到数组 哈希表 属性类等几个功能;本文提供本人常用语法和简单解释: 一般数组定义 //定义数组catalogs public st ...

  4. 设计模式:(中介者模式)

    1.定义 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为 ...

  5. java mediator模式_设计模式之中介者模式(mediator模式)

    引入中介者模式 中介者模式实例 中介者模式分析 引入中介者模式 大家想象一下有十个人要共同完成一个工作,他们要互相合作和沟通,并且根据对方的通知可能要改变自己的状态,但这通常会带来很多问题,流程过于复 ...

  6. 《研磨设计模式》chap10 中介者模式Mediator(1)简介

    1. 使用场景 如果电脑没有主板,各个配件的关系为 有主板后: 2. 中介者模式简介:各对象通过中介者来交互 //Mediator.java public interface Mediator { p ...

  7. C#设计模式之十七中介者模式(Mediator Pattern)【行为型】

    一.引言 今天我们开始讲"行为型"设计模式的第五个模式,该模式是[中介者模式],英文名称是:Mediator Pattern.还是老套路,先从名字上来看看."中介者模式& ...

  8. [设计模式-行为型]中介者模式(Mediator)

    一句话 又翻译成调停者模式. 就是类似房产中介, 买房.卖方不需要双方直接交涉,交给中介. 概括 解析 MEDIATOR-四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自 ...

  9. 设计模式理解:中介者模式(Mediator)

    中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护. 两个类或者多个类之间存在相 ...

最新文章

  1. c# vscode 配置_使用VSCode开发C#项目
  2. php学习---环境搭建安装 编译器的安装
  3. 软件包管理 之 fedora-rpmdevtools 工具介绍
  4. java中的传参是什么意思_如果作为参数传递,“字符串…参数”是什么意思?...
  5. tensorflow的GPU使用--Python
  6. Android TeaPickerView数据级联选择器
  7. 《高质量程序设计指南——C++/C》重印啦!
  8. iMX8MPlus和iMX8QM机器学习框架eIQ性能对比
  9. 分享一个免费巨好用的shell工具
  10. 关于M0内核MCU的Bootloader编写
  11. mysql语句解决查询乱码_mysql5.0用命令行查询正常,但用sql就乱码,已经加了useUnicode=truecharacterEncoding=GBK,该如何处理 _ 搞代码...
  12. ProxySQL 排错 Max connect timeout reached while reaching hostgroup 10 after 10000ms
  13. 双显示器扩展显示时怎么移动鼠标到另一块屏?
  14. mysql fastdfs_FastDFS监控系统Fastdfs-zyc配置
  15. 活动总曝光超1亿,单场引导GMV超1000万,华少快手生活服务专场首战告捷!
  16. 保监会首度回应交强险大盈论
  17. JVM#Java高墙之内存模型
  18. 仓央嘉措 ❤《见与不见》的全文 ❤
  19. 软件导航页源码+可封装APP/下载软件引流整站源码
  20. Cheese Aizu - 0558题解

热门文章

  1. 编写SQL语句,检索Customers表中所有的列,再编写另外的SELECT语句,仅检索顾客的ID
  2. ubuntu16.04 安装Anbox
  3. 微信小程序之videoshow-fullscreen-btn失效问题
  4. 固定贴片电阻器封装尺寸
  5. /usr/bin/ld: /tmp/ccIHWHTn.o: in function `Cdisk::Cdisk()‘:编译报错解决方案
  6. 话说程序员的职业生涯
  7. stm32 TIM1的CH1N~CH3N、CH1~CH4基本配置
  8. 利用js实现手机访问PC端直接跳转wap端
  9. 军工研究所需要计算机专业吗,8大军工研究所之选择——一名毕业生求职的亲身感受...
  10. 【攻防世界 | WP】CAT