中介者模式

一、中介者模式介绍

1、定义与类型

定义一个封装一组对象如何交互的对象
通过使对象明确地相互引用来促进松散耦合,并允许独立地改变它们的交互
类型:行为型

2、适用场景

系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解
交互的公共行为,如果需要改变行为则可以增加新的中介者类

3、优点

将一对多转化成了一对一、降低程序复杂度
类之间解耦

4、缺点

中介者过多,导致系统复杂

5、相关设计模式

中介者模式和观察者模式:这两者经常结合使用

二、代码示例

模拟场景:用户在聊天室内聊天

用户类:

public class User {
    private String name;

    public User(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void sendMessage(String message){
        StudyGroup.showMessage(this, message);
    }
}

聊天室类:

public class StudyGroup {
    public static void showMessage(User user, String message){
        // 此处可结合观察者模式进行通知
        System.out.println(new Date().toString() + "[" + user.getName() + "]" + message);
    }
}

测试类:

public class Test {
    public static void main(String[] args) {
        User tom = new User("tom");
        User jery = new User("jery");

        tom.sendMessage("hi");
        jery.sendMessage("hello");
    }
}

输出:
Mon May 25 20:31:04 CST 2020[tom]hi
Mon May 25 20:31:04 CST 2020[jery]hello

三、源码示例

1、JDK中的Timer

(0)

相关推荐

  • Java描述设计模式(08):桥接模式

    Java描述设计模式(08):桥接模式 原创知了一笑2019-08-23 07:00:00 写在前面 推荐阅读: Java描述设计模式(07):适配器模式 Java描述设计模式(06):建造者模式 J ...

  • 无废话设计模式(17)行为型模式--中介者模式

    0-前言 中介者模式定义(Mediator): 用一个中介对象来封装一系列的对象交互. 中介者对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互. 1-实现 1-1.简单UM ...

  • 图解Java设计模式之中介者模式

    智能家庭项目 传统方案解决智能家庭管理问题 中介者模式基本介绍 中介者模式的原理类图 中介者模式 - 智能家庭的操作流程 中介者模式的注意事项和细节 智能家庭项目 1)智能家庭包括各种设备,闹钟.咖啡 ...

  • 创建型设计模式--工厂模式、抽象工厂模式

    一.小案例分析 1.功能需求: 实现一个发送信息的功能,要便于扩展与维护. (1)发送信息的工具有很多,比如短信.微信.邮件.QQ等. (2)选择某个工具进行信息发送. 2.小菜鸡去实现: (1)定义 ...

  • 最新票据中介套利模式揭秘

    陈亚楠 |2018-12-18 21:2832108 2018年下半年以来,市场利率整体下行,部分以实体公司为载体的票据中介,利用银行体系信贷额度宽松.存贴价格倒挂时机,业务不断创新,在"收 ...

  • PHP设计模式之中介者模式

    PHP设计模式之中介者模式 上回说道,我们在外打工的经常会和一类人有很深的接触,那就是房产中介.大学毕业后马上就能在喜欢的城市买到房子的X二代不在我们的考虑范围内哈.既然需要长期的租房,那么因为工作或 ...

  • [PHP小课堂]PHP设计模式之中介者模式

    [PHP小课堂]PHP设计模式之中介者模式 关注公众号:[硬核项目经理]获取最新文章 添加微信/QQ好友:[DarkMatterZyCoder/149844827]免费得PHP.项目管理学习资料

  • 空白直播间 |中介加盟模式的开创者——21世纪不动产

    part1. 近两年,中国经纪行业最显著的变化之一,是加盟模式在全国各地兴起与发展. 对于加盟这一现象级的商业模式,我们该如何理解它的本质? 国内外不同特许品牌之间差异化的竞争策略与价值优势分别是什么 ...

  • 行为型模式之中介者模式

    在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是"网状结构",它要求每个对象都必须知道它需要交互的对象. 如果把这种"网状结构"改为& ...

  • MediatorPattern中介者模式

    中介者模式 1.定义 使用一个中介对象封装一系列的对象交互,中介者使用对象不需要显式的相互作用,从而实降现低耦合度,且可以独立改变被封装的一些列对象之间的交互. 中介者模式也叫做调停者模式:对象之间的 ...

  • Java设计模式-中介者模式

    https://www.shengchulai.com/blog-CiTs5E8tUf.htm 前言 小时候钟爱战争片,<地道战>.<鸡毛信>.<铁道游击队>一系列 ...