中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

关键代码:对象 Colleague 之间的通信封装到一个类中单独处理。

优点: 1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。

缺点:中介者会庞大,变得复杂难以维护。

创建中介类。

/**

* 1. 创建中介类。

* @author mazaiting

*/

public class ChatRoom {

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

System.out.println();System.out.println(new Date().toString()

+ " [" + user.getName() +"] : " + message);

}

}

创建 User 类。

/**

* 2. 创建 user 类。

* @author mazaiting

*/

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;

}

/**

* 发送消息

* @param message

*/

public void sendMessage(String message){

ChatRoom.showMessage(this, message);

}

}

使用 User 对象来显示他们之间的通信。

/**

* 3. 使用 User 对象来显示他们之间的通信。

* @author mazaiting

*/

public class Client {

public static void main(String[] args) {

User robert = new User("Robert");

User john = new User("John");

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

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

}

}

打印结果

Sun Sep 10 19:56:53 CST 2017 [Robert] : Hi! John!

Sun Sep 10 19:56:53 CST 2017 [John] : Hello! Rebort!

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

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

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

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

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

  3. 8-设计模式之行为型模式二(状态模式、观察者模式、中介者模式)

    设计模式之行为型模式二(状态模式.观察者模式.中介者模式) 6.5 状态模式 6.5.1 概述 6.5.2 结构 6.5.3 案例实现 6.5.4 优缺点 6.5.5 使用场景 6.6 观察者模式 6 ...

  4. java mediator模式_设计模式之中介者模式(mediator模式)

    引入中介者模式 中介者模式实例 中介者模式分析 引入中介者模式 大家想象一下有十个人要共同完成一个工作,他们要互相合作和沟通,并且根据对方的通知可能要改变自己的状态,但这通常会带来很多问题,流程过于复 ...

  5. 【Mediator模式】C++设计模式——中介者模式

    中介者模式 一.设计流程探讨 二.模式介绍 三.代码实现     C++设计模式大全,23种设计模式合集详解-

  6. java 设计模式 示例_Java中的中介器设计模式-示例教程

    java 设计模式 示例 中介者模式是行为设计模式之一 ,因此它处理对象的行为. 中介器设计模式用于在系统中不同对象之间提供集中式通信介质. 根据GoF,中介者模式意图是: 通过封装不同对象集相互交互 ...

  7. java工厂方法_Java设计模式之工厂方法模式

    2.工厂方法模式 <设计模式之禅>中用神话故事女娲造人来比概述工厂方法模式. 女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放置到大地上生长,工艺过程是没有错的,但是意外随时都会发生 ...

  8. java的简单工厂模式_java设计模式之简单工厂模式

    简单工厂模式的概念 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. ...

  9. 什么java工厂模式_java的三种工厂模式是什么?

    java的三种工厂模式:1.简单工厂模式,提供一个创建对象实例的功能,而无须关心其具体实现:2.工厂方法模式:3.抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,无须指定它们具体的类. 一. ...

最新文章

  1. 小程序点击按钮 关闭小程序
  2. php用w获取的星期不对,php获取时间是星期几的方法是什么
  3. jpa 自定义sql if_mybatis仿jpa 使用@createDate @updateDate
  4. NLP任务增强:通过引入外部知识来提供额外信息
  5. 【论文分享】ACL 2020 细粒度情感分析方法
  6. 0031-如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
  7. HTML5本地存储——IndexedDB二:索引
  8. openwrt - transmission
  9. Centos8安装docker及AWVS
  10. 360来硬拼,云盘免费用了!新注册就能获得36T容量!
  11. 数据库系统概论笔记三——销售管理子系统E-R图的设计
  12. 机器学习基础随笔(3)
  13. Unexpected token o in JSON at position 1 at JSON.parse (anonym)
  14. 保姆级教程—部署SpringBoot项目至云服务器(华为云)
  15. 秉火429笔记之十七 SPI--操作FLASH
  16. 如何用计算机算时间,在win10电脑的计算器中如何进行日期的计算
  17. win10快速删除文件cmd命令
  18. TiDB Lightning 故障处理
  19. __name__属性的作用是什么
  20. python 实战37 让自己的微信变成计算器

热门文章

  1. 【附源码】Java计算机毕业设计葡萄酒销售管理系统论文(程序+LW+部署)
  2. 干了十年的程序员告诉你:这个问题根本没有讨论的必要
  3. 20天实现【足迹】APP(1)
  4. Java多线程并发笔记03 synchronized减小锁粒度,优化代码执行时间
  5. Day 5 Soot使用笔记
  6. android apk无法安装及闪退问题
  7. Go语言defer详解笔记
  8. HDU 1237 求一个连通图中的哈密顿回路数(同一个状态下的哈密顿回路数)
  9. rapidjson 使用
  10. 单向链表(Singly Linked List)