概述

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

    适用性

1.一组对象以定义良好但是复杂的方式进行通信.产生的相互依赖关系结构混乱且难以理解.

2.一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象.

3.想定制一个分布在多个类中的行为,而又不想生成太多的子类.

    参与者

1.Mediator

中介者定义一个接口用于与各同事(Colleague)对象通信.

2.ConcreteMediator

具体中介者通过协调各同事对象实现协作行为.

了解并维护它的各个同事.

3.Colleagueclass

每一个同事类都知道它的中介者对象.

每一个同事对象在需与其他的同事通信的时候,与它的中介者通信

类图

更多精彩教程请关注:XP系统下载

转载于:https://www.cnblogs.com/mfxp/p/3256502.html

【设计模式-行为型-中介者模式(Mediator)】相关推荐

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

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

  2. 设计模式(10):行为型-中介者模式(Mediator)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

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

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

  4. java mediator_《JAVA设计模式》之中介者模式(Mediator)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式.调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用.从 ...

  5. 《研磨设计模式》chap10 中介者模式Mediator(2)应用举例

    人员类和部门类之间的关系:删除一个人或一个部门时,需要同时删除人员类和部门类里的数据,增加操作也是如此. public class User{ private String userId; //用户编 ...

  6. 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern) 作者:webabcd 介绍 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互 ...

  7. PHP设计模式之中介者模式(Mediator Pattern)了解下

    咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互, ...

  8. 设计模式.中介者模式Mediator

    定义 中介者模式(Mediator pattern) : 使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用.从而使它们可以较松散地耦合.当这些对象中的某些对象之间的相 ...

  9. 设计模式-中介者模式(Mediator Pattern)

    设计模式-中介者模式(Mediator Pattern) 文章目录 设计模式-中介者模式(Mediator Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.总 ...

最新文章

  1. GoF23种设计模式之行为型模式之解释器模式
  2. 一个基于组件的动态对象系统
  3. C++算术运算符与算术表达式
  4. javascript数字千分位格式化
  5. angular指令:tm.tags添加/删除标签
  6. FastReport分页和空行填充
  7. python学习记录(三)
  8. c++常见面试题30道
  9. oracle connect权限6,Oracle 19c 升级19.6 RU 导致权限异常 gipcInternalConnectSync: failed sync request 解决方法...
  10. 推荐我看过的几本好书给大家!(2)
  11. mysql like 多个条件_千万级MySQL数据库这样建索引可以让你的数据库飞起来.........
  12. 软银准备以超400亿美元向英伟达出售Arm,交易最快下周达成
  13. python 中文乱码_python 解决cv2绘制中文乱码问题
  14. Tapestry5的喜爱.
  15. 语音文件aac-raw-wav格式转换方法
  16. 硬盘重新分区后数据丢失如何恢复?
  17. 不同局域网下共享打印机的解决思路(保证可用)
  18. TCP三次握手及其相关问题
  19. python selenium 处理弹窗_Selenium自动化发布话题,以及获取window.showModalDialog()弹窗对象(Python实现)...
  20. html实现WordsClock(文字时钟)

热门文章

  1. 解读 ESP32 API参考-system-App Image Format
  2. java支付宝rsa2签名,使用支付宝SDK进行RSAj加签验签以及加密解密
  3. Eclipse——全局搜索
  4. 《Head First设计模式(中文版)》
  5. 9.PMAC上位机-上位机发送指令
  6. VuePress搭建博客教程(六)、vuepress配置head和自定义样式
  7. 在Ubuntu 10.04中安装 insight
  8. Linux移动光标指令hkjl,使用 HPC Pack 在 Linux VM 上執行 OpenFOAM - Azure Virtual Machines | Microsoft Docs...
  9. PrintWriter out=response.getWriter()的问题
  10. flex布局HTML实例,Flex常见布局实例