Java设计模式(16)中介模式(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模式)相关推荐
- java mediator_Java 实现中介者(Mediator)模式
类图 public interface IMediator { public void createMediator(); public void work(); } /** * 中介.调节实际上需要 ...
- Java设计模式之中介者模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- 设计模式学习笔记——中介者(Mediator)模式
设计模式学习笔记--中介者(Mediator)模式 @(设计模式)[设计模式, 中介者模式, Mediator] 设计模式学习笔记中介者Mediator模式 基本介绍 中介者案例 类图 实现代码 Me ...
- Java设计模式(1)工厂模式(Factory模式)
工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...
- Java设计模式(8)组合模式(Composite模式)
Composite定义:将对象以树形结构组织起来,以达成"部分-整体" 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Compo ...
- Java设计模式(10)代理模式(Proxy模式)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...
- 中介者(Mediator)模式
文章目录 中介者(Mediator)模式 1. 意图 2. 别名 3. 动机 4. 适用性 5. 结构 6. 参与者 7. 协作 8. 效果 9. 实现 10. 代码示例 11.已知应用 12. 相关 ...
- Java设计模式之五大创建型模式
Java设计模式之五大创建型模式 设计模式(23种) 单例模式(Singleton Pattern) 参考链接 概念 使用场景 实现思路 实现方式 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线 ...
- 【Java设计模式】简单学访问者模式——我的选择是,Yes
目录 说明 实现方式 优点 缺点 应用场景 其他链接 说明 行为型模式之一,其他还有命令模式.模板方法模式.迭代器模式.观察者模式.中介者模式.备忘录模式.解释器模式(Interpreter模式).状 ...
- 【Java设计模式】简单学解释器模式——加减乘除
目录 说明 实现方式 应用场景 其他链接 说明 行为型模式之一,其他还有命令模式.模板方法模式.访问者模式.观察者模式.中介者模式.备忘录模式.迭代器模式.状态模式.策略模式.职责链模式(责任链模式) ...
最新文章
- Codeforces Round #188 (Div. 1) B. Ants 暴力
- 七、发生交通事故后的自救、急救等基本知识,以及常见危险化学品等知识
- 校外导师互选 页面设计
- kali linux 截图位置,Kali Linux中使用截图工具
- jQuery 常用方法总结
- TypeScript里的混合类型
- [VMware WorkStation]虚拟机网络
- 工业交换机:如果出现了物理性故障该怎么判断?
- Find Minimum in Rotated Sorted Array
- 自动驾驶芯片_盘点全球自动驾驶芯片“战场”参与者
- Springboot之actuator配置不当漏洞RCE(jolokia)
- 第一篇 Windows 8 开发Windows Metro style app环境配置
- 零基础+进阶系统化渗透测试工程师+CTF网络安全大赛学习指南
- 在vscode中新建html文件的两种方法
- Android 手机遥控器控制机顶盒(电视)
- alanwang[GDOU] 简单排序法:冒泡排序法(谭浩强例题)
- ae,me,pr功能区别
- CentOS7下载安装nginx
- bi 建模流程图_搞懂PowerBI的数据建模
- VVC中对CU进行分类,同时进行分区模式选择
热门文章
- 秒杀系统流量削峰,这事应该怎么做?
- 单列索引和联合索引,有什么区别?
- Redis 缓存和 MySQL 数据如何实现一致性?
- LINUX下CPU Load Average的一点研究
- go标准命令详解0.1 go build
- 也许,DOM 不是答案
- Android --- 按钮控件设置与不设置背景都会有一个小小的灰色阴影怎么去掉?
- 在tomcat上部署项目,实现类似添加这样的功能之后,tomcat要运行很久,解决办法
- set的用法及短语_人教版九全Unit 14重点短语、重点句型、课文讲解
- 浮点数例外 (核心已转储)_15000 字梳理 JVM 的核心知识