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设计模式(1)工厂模式(Factory模式)

Java设计模式(2)单态模式(Singleton模式)

Java设计模式(3)建造者模式(Builder模式)

Java设计模式(4)原型模式(Prototype模式)

Java设计模式(5)共享模式/享元模式(Flyweight模式)

Java设计模式(6)桥模式(Bridge模式)

Java设计模式(7)装饰模式(Decorator模式)

Java设计模式(8)组合模式(Composite模式)

Java设计模式(9)适配器模式(Adapter模式)

Java设计模式(10)代理模式(Proxy模式)

Java设计模式(11)外观模式(Facade模式)

Java设计模式(12)迭代模式(Iterator模式)

Java设计模式(13)模板模式(Template模式)

Java设计模式(14)责任链模式(Chain of Responsibility模式)

Java设计模式(15)备忘录模式(Memento模式)

Java设计模式(16)中介模式(Mediator模式)

Java设计模式(17)解释器模式(Interpreter模式)

Java设计模式(18)策略模式(Strategy模式)

Java设计模式(19)状态模式(State模式)

Java设计模式(20)观察者模式(Observer模式)

Java设计模式(21)访问模式(Visitor者模式)

Java设计模式(22)命令模式(Command模式)

转载于:https://www.cnblogs.com/Coda/p/4306565.html

Java设计模式(16)中介模式(Mediator模式)相关推荐

  1. java mediator_Java 实现中介者(Mediator)模式

    类图 public interface IMediator { public void createMediator(); public void work(); } /** * 中介.调节实际上需要 ...

  2. Java设计模式之中介者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  3. 设计模式学习笔记——中介者(Mediator)模式

    设计模式学习笔记--中介者(Mediator)模式 @(设计模式)[设计模式, 中介者模式, Mediator] 设计模式学习笔记中介者Mediator模式 基本介绍 中介者案例 类图 实现代码 Me ...

  4. Java设计模式(1)工厂模式(Factory模式)

    工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...

  5. Java设计模式(8)组合模式(Composite模式)

    Composite定义:将对象以树形结构组织起来,以达成"部分-整体" 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Compo ...

  6. Java设计模式(10)代理模式(Proxy模式)

    理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...

  7. 中介者(Mediator)模式

    文章目录 中介者(Mediator)模式 1. 意图 2. 别名 3. 动机 4. 适用性 5. 结构 6. 参与者 7. 协作 8. 效果 9. 实现 10. 代码示例 11.已知应用 12. 相关 ...

  8. Java设计模式之五大创建型模式

    Java设计模式之五大创建型模式 设计模式(23种) 单例模式(Singleton Pattern) 参考链接 概念 使用场景 实现思路 实现方式 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线 ...

  9. 【Java设计模式】简单学访问者模式——我的选择是,Yes

    目录 说明 实现方式 优点 缺点 应用场景 其他链接 说明 行为型模式之一,其他还有命令模式.模板方法模式.迭代器模式.观察者模式.中介者模式.备忘录模式.解释器模式(Interpreter模式).状 ...

  10. 【Java设计模式】简单学解释器模式——加减乘除

    目录 说明 实现方式 应用场景 其他链接 说明 行为型模式之一,其他还有命令模式.模板方法模式.访问者模式.观察者模式.中介者模式.备忘录模式.迭代器模式.状态模式.策略模式.职责链模式(责任链模式) ...

最新文章

  1. Codeforces Round #188 (Div. 1) B. Ants 暴力
  2. 七、发生交通事故后的自救、急救等基本知识,以及常见危险化学品等知识
  3. 校外导师互选 页面设计
  4. kali linux 截图位置,Kali Linux中使用截图工具
  5. jQuery 常用方法总结
  6. TypeScript里的混合类型
  7. [VMware WorkStation]虚拟机网络
  8. 工业交换机:如果出现了物理性故障该怎么判断?
  9. Find Minimum in Rotated Sorted Array
  10. 自动驾驶芯片_盘点全球自动驾驶芯片“战场”参与者
  11. Springboot之actuator配置不当漏洞RCE(jolokia)
  12. 第一篇 Windows 8 开发Windows Metro style app环境配置
  13. 零基础+进阶系统化渗透测试工程师+CTF网络安全大赛学习指南
  14. 在vscode中新建html文件的两种方法
  15. Android 手机遥控器控制机顶盒(电视)
  16. alanwang[GDOU] 简单排序法:冒泡排序法(谭浩强例题)
  17. ae,me,pr功能区别
  18. CentOS7下载安装nginx
  19. bi 建模流程图_搞懂PowerBI的数据建模
  20. VVC中对CU进行分类,同时进行分区模式选择

热门文章

  1. 秒杀系统流量削峰,这事应该怎么做?
  2. 单列索引和联合索引,有什么区别?
  3. Redis 缓存和 MySQL 数据如何实现一致性?
  4. LINUX下CPU Load Average的一点研究
  5. go标准命令详解0.1 go build
  6. 也许,DOM 不是答案
  7. Android --- 按钮控件设置与不设置背景都会有一个小小的灰色阴影怎么去掉?
  8. 在tomcat上部署项目,实现类似添加这样的功能之后,tomcat要运行很久,解决办法
  9. set的用法及短语_人教版九全Unit 14重点短语、重点句型、课文讲解
  10. 浮点数例外 (核心已转储)_15000 字梳理 JVM 的核心知识