中介者模式,用于减少多个对象或类之间的通信复杂,此模式提供了一个中介类,它通常处理不同类之间的所有通信,并支持通过松散耦合来维护代码。中介者模式属于行为模式。

实现实例
在这里通过一个聊天室的实例来演示中介者模式的使用,在聊天室中,多个用户可以向聊天室发送消息,并且聊天室的责任是向所有用户显示消息。在示例中创建了两个类ChatRoom和User。用户对象将使用ChatRoom方法来共享他们的消息

MediatorPatternDemo这是一个演示类,它使用User对象来显示他们之间的通信。

第一步
创建一个聊天室
ChatRoom.java

package 中介者模式;import java.util.Date;public class ChatRoom {public static  void showMessage(User user,String message){System.out.println(new Date().toString()+ " [" + user.getName() + "] : " + message);}
}

第二步

package 中介者模式;public class User {private String name;public String getName(){return name;}public void setName(String name){this.name=name;}public User(String name){this.name=name;}public  void sendMessage(String message){ChatRoom.showMessage(this,message);}
}

第三步

package 中介者模式;public class MediatorPatternDemo {public static void main(String[] args) {User robert =new User("Robert");User john =new User("John");robert.sendMessage("Hi John");robert.sendMessage("Hello!Robert!");}
}

20190123——一气化三清 Java中介者模式相关推荐

  1. java中介者模式例子_Java中介者模式(Mediator Pattern)

    本篇文章帮大家学习java中介者模式(Mediator Pattern),包含了Java中介者模式(Mediator Pattern)使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以 ...

  2. java 中介者模式

    原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从 ...

  3. Java设计模式(访问者模式-迭代器模式-观察者模式-中介者模式)

    Java设计模式Ⅶ 1.访问者模式 1.1 访问者模式概述 1.2 代码理解 2.迭代器模式 2.1 迭代器模式概述 2.2 代码理解 3.观察者模式 3.1 观察者模式概述 3.2 代码理解 4.中 ...

  4. 中介者模式java_图解Java设计模式之中介者模式

    智能家庭项目 1)智能家庭包括各种设备,闹钟.咖啡机.电视机.窗帘等 2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为 :闹铃响起 - >咖啡机开始做咖啡 -> ...

  5. Java 设计模式之中介者模式

    本文继续23种设计模式系列之中介者模式. 定义 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 角色 抽象中介者:定义好同 ...

  6. java设计模式之中介者模式(Mediator)

    在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是"网状结构",它要求每个对象都必须知道它需要交互的对象.例如,每个人必须记住他(她)所有朋友的电话:而且, ...

  7. Java设计模式之行为型:中介者模式

     前言: 在我们的生活中处处充斥着"中介者",比如你租房.买房.找工作.旅游等等可能都需要那些中介者的帮助,地球上国与国之间的关系异常复杂,会因为各种各样的利益关系来结成盟友或者敌 ...

  8. 中介者模式(Java)

    中介者模式(Java) 下面是关于我所写的所有设计模式代码(还是建议自己手打或者想一个别的例子练习一次) (https://github.com/lihang212010/DesignPatterns ...

  9. 图解Java设计模式学习笔记——行为型模式(模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式)

    一.模板方法模式(模板模式)--钩子方法 1.需求-豆浆制作问题 编写制作豆浆的程序,说明如下: 制作豆浆的流程选材-->添加配料-->浸泡-->放到豆浆机打碎. 通过添加不同的配料 ...

最新文章

  1. 配置MySQL5.7基于GTID的复制
  2. 如何在家搭建oracle,oracle基本操作,自己亲手做过了
  3. linux怎样进入src目录,Linux配置目录
  4. python的turtle模块(海龟画图)
  5. 牛客多校第八场E Explorer(左开右闭线段树+可撤回并查集)题解
  6. Swift高仿喜马拉雅APP之一Charles抓包、图片资源获取等
  7. JAVA中利用Docx4J组件操作word文档,进行docx格式文档的创建、写入、读取、转换html、图片处理示例、转换pdf
  8. 阻击 瑞星 和 雅虎助手 的 SVOHOST.exe(第2版)
  9. c++ 集合常用函数及集合排序
  10. cmd: cd /D %~dp0 的含义
  11. Hotelling T2检验和多元方差分析
  12. JavaScript 技术篇-如何实现在线logo网站制作后的logo去水印,免费制作无水印logo方法
  13. php 微信代扣开发步骤,【微信支付】微信代扣开发者文档
  14. PDF文件在线转换HTML的方法
  15. html p 标签文字换行与不换行以及文字隐藏
  16. 合成游戏中的数学原理
  17. JavaScirpt 与 ECMAScript 的关系
  18. [0CTF 2016]piapiapia 1
  19. 前端 | 前端设计设计及代码收集
  20. 数据中心蓄冷罐的开式与闭式的选择-孙长青

热门文章

  1. SAP批量维护库存地点,隐藏的事务代码MMSC_MASS
  2. 一点关于线程和摇奖机
  3. 《游戏数据分析实战》总结思考
  4. BootLoader、Linux Kernel(linux内核)、RootFile(根文件系统)
  5. DL之Transformer:Transformer的简介(优缺点/架构详解,基于Transformer的系列架构对比分析)、使用方法(NLP领域/CV领域)、案例应用之详细攻略
  6. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解
  7. 《对抗攻击与防御分类方法综述》阅读笔记20220401
  8. 北京某金融公司(Java开发实习生)面试及答案
  9. 【java】剑指offer46_把数字翻译成字符串
  10. return与finally到底谁先执行