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

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

实现实例

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

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

中介者模式(Mediator Pattern)示例的结构如下图所示 -

第1步

创建一个聊天室类- ChatRoom,如下代码所示 -ChatRoom.java

import java.util.Date;

public class ChatRoom {

public static void showMessage(User user, String message){

System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);

}

}

第2步

创建一个用户类- UserUser.java

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);

}

}

第3步

使用User对象显示它们之间的通信。MediatorPatternDemo.java

public class MediatorPatternDemo {

public static void main(String[] args) {

User robert = new User("Robert");

User john = new User("John");

robert.sendMessage("Hi! John!");

john.sendMessage("Hello! Robert!");

}

}

第4步

验证输出,执行上面的代码得到以下结果 -

Sat Dec 03 17:12:59 CST 2016 [Robert] : Hi! John!

Sat Dec 03 17:12:59 CST 2016 [John] : Hello! Robert!

java中介者模式例子_Java中介者模式(Mediator Pattern)相关推荐

  1. java reactor模式例子_回顾 Reactor 模式

    Reactor 作为网络编程库的核心模式的 Reactor 模式是网络编程中的最常用的模式,反应器 Reactor 又名分派器 Dispatcher, 或通知器 Notifier, 重温一下 POSA ...

  2. java工厂方法模式记录日志_java工厂方法模式

    一:工厂方法模式 1.概念 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式. 工厂方法模式的用意 ...

  3. java reactor模式例子_JAVA BIO,NIO,Reactor模式总结

    传统同步阻塞I/O(BIO) 在NIO之前编写服务器使用的是同步阻塞I/O(Blocking I/O).下面是一个典型的线程池客服端服务器示例代码,这段代码在连接数急剧上升的情况下,这个服务器代码就会 ...

  4. java 策略模式例子_java策略模式实例解析

    1.策略模式概述: 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并让它们可以相互替换.策略模式让算法独立于使用它的客户而变化,也称为政策模式.策略模式是一种行为型 ...

  5. java读写锁死锁例子_Java并发关于重入锁与读写锁的详解

    这篇文章主要介绍了Java并发编程之重入锁与读写锁,文中相关实例代码详细,测试可用,具有一定参考价值,需要的朋友可以了解下. 重入锁 重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对 ...

  6. java exec dir的例子_java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)方法实例...

    全屏 java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)方法执行在指定环境和工作目录的独立进程中指定的命令和参数.字符 ...

  7. java商场满减活动_Java使用策略模式解决商场促销商品问题示例

    本文实例讲述了Java使用策略模式解决商场促销商品问题.分享给大家供大家参考,具体如下: 一 模式定义 策略模式:定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的 ...

  8. java的多态代码例子_java多态例子,java多态代码实例

    下面要给大家分享的是一个多态经典案例,一起来看看这个java多态简单例子吧./*多态的好处:提高了代码的维护性和扩展性: 弊端:父类不能使用子类的特有功能. 要用子类的特有功能,可以: A:创建子类对 ...

  9. java策略设计模式输出字母_Java 设计模式-策略模式(Strategy Pattern)

    策略模式(Strategy Pattern)属于对象行为模式.其作用是针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使它们可以相互替换. 策略模式的意图是将可以互换的方法封装在各自的对立类 ...

最新文章

  1. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十五)完美捕捉精灵之神器 -- HitTest...
  2. 计算机视觉编程——照相机模型
  3. Python 计算机视觉(三)—— 数字图像处理基本操作
  4. 计算机编码规则之:Base64编码
  5. Spark SQL(三)之视图与执行SQL
  6. subList?? subString???
  7. 人员雇佣 网络流_雇用Java EE开发人员的一些面试问题
  8. php接口返回一个数组怎末写_php api返回json数组
  9. 11月热门下载资源TOP100强力推荐!
  10. Texpad for Mac编辑器使用说明
  11. php 命令安装tp5,tp5.1框架的下载与安装方法步骤(图文)
  12. c语言 倒计时不清屏_c语言 清屏函数
  13. 网易云音乐实时数仓2.0进阶之路
  14. Zabbix系列:proxy存储数据表proxy_history
  15. i技术会 | 爱奇艺品牌广告算法探索和实践
  16. 51单片机控制的数字温度计 PROTEUS 和51单片机教程
  17. TL-R473P-AC【搭配面板式AP组网设置方法】
  18. EXCEL填入数据,自动出现当天日期
  19. 函数是一等公民,这到底在说什么?
  20. 最给人启迪的30条编程名言

热门文章

  1. 机器人电焊电流电压怎么调_西安焊接机器人工作站的主要设备有哪些?西安瑞斯曼...
  2. linux未使用磁盘空间满,linux磁盘空间用满的处理方法
  3. 我这么认真地问问题,你为啥不回答???
  4. Python生成器函数案例一则:理财收益计算
  5. Python使用pyopencl在GPU上并行处理批量判断素数
  6. # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
  7. c++ using 前置声明_详解C++ 前置声明
  8. JVM Java内存区域 与 内存溢出 (系列号1)
  9. html英文怎么换成中文的,英文版Win7系统怎么换成中文的
  10. python字符串_四、Python的字符串