java中介者模式例子_Java中介者模式(Mediator Pattern)
本篇文章帮大家学习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)相关推荐
- java reactor模式例子_回顾 Reactor 模式
Reactor 作为网络编程库的核心模式的 Reactor 模式是网络编程中的最常用的模式,反应器 Reactor 又名分派器 Dispatcher, 或通知器 Notifier, 重温一下 POSA ...
- java工厂方法模式记录日志_java工厂方法模式
一:工厂方法模式 1.概念 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式. 工厂方法模式的用意 ...
- java reactor模式例子_JAVA BIO,NIO,Reactor模式总结
传统同步阻塞I/O(BIO) 在NIO之前编写服务器使用的是同步阻塞I/O(Blocking I/O).下面是一个典型的线程池客服端服务器示例代码,这段代码在连接数急剧上升的情况下,这个服务器代码就会 ...
- java 策略模式例子_java策略模式实例解析
1.策略模式概述: 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并让它们可以相互替换.策略模式让算法独立于使用它的客户而变化,也称为政策模式.策略模式是一种行为型 ...
- java读写锁死锁例子_Java并发关于重入锁与读写锁的详解
这篇文章主要介绍了Java并发编程之重入锁与读写锁,文中相关实例代码详细,测试可用,具有一定参考价值,需要的朋友可以了解下. 重入锁 重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对 ...
- java exec dir的例子_java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)方法实例...
全屏 java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)方法执行在指定环境和工作目录的独立进程中指定的命令和参数.字符 ...
- java商场满减活动_Java使用策略模式解决商场促销商品问题示例
本文实例讲述了Java使用策略模式解决商场促销商品问题.分享给大家供大家参考,具体如下: 一 模式定义 策略模式:定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的 ...
- java的多态代码例子_java多态例子,java多态代码实例
下面要给大家分享的是一个多态经典案例,一起来看看这个java多态简单例子吧./*多态的好处:提高了代码的维护性和扩展性: 弊端:父类不能使用子类的特有功能. 要用子类的特有功能,可以: A:创建子类对 ...
- java策略设计模式输出字母_Java 设计模式-策略模式(Strategy Pattern)
策略模式(Strategy Pattern)属于对象行为模式.其作用是针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使它们可以相互替换. 策略模式的意图是将可以互换的方法封装在各自的对立类 ...
最新文章
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十五)完美捕捉精灵之神器 -- HitTest...
- 计算机视觉编程——照相机模型
- Python 计算机视觉(三)—— 数字图像处理基本操作
- 计算机编码规则之:Base64编码
- Spark SQL(三)之视图与执行SQL
- subList?? subString???
- 人员雇佣 网络流_雇用Java EE开发人员的一些面试问题
- php接口返回一个数组怎末写_php api返回json数组
- 11月热门下载资源TOP100强力推荐!
- Texpad for Mac编辑器使用说明
- php 命令安装tp5,tp5.1框架的下载与安装方法步骤(图文)
- c语言 倒计时不清屏_c语言 清屏函数
- 网易云音乐实时数仓2.0进阶之路
- Zabbix系列:proxy存储数据表proxy_history
- i技术会 | 爱奇艺品牌广告算法探索和实践
- 51单片机控制的数字温度计 PROTEUS 和51单片机教程
- TL-R473P-AC【搭配面板式AP组网设置方法】
- EXCEL填入数据,自动出现当天日期
- 函数是一等公民,这到底在说什么?
- 最给人启迪的30条编程名言
热门文章
- 机器人电焊电流电压怎么调_西安焊接机器人工作站的主要设备有哪些?西安瑞斯曼...
- linux未使用磁盘空间满,linux磁盘空间用满的处理方法
- 我这么认真地问问题,你为啥不回答???
- Python生成器函数案例一则:理财收益计算
- Python使用pyopencl在GPU上并行处理批量判断素数
- # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
- c++ using 前置声明_详解C++ 前置声明
- JVM Java内存区域 与 内存溢出 (系列号1)
- html英文怎么换成中文的,英文版Win7系统怎么换成中文的
- python字符串_四、Python的字符串