您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java设计模式——中介者模式

小志的博客 发布时间:2021-01-23 21:24:41 ,浏览量:0

目录
    • 一、中介者模式的定义与类型
    • 二、中介者模式的适用场景
    • 三、中介者模式的优点
    • 四、中介者模式的缺点
    • 五、中介者模式相关设计模式
    • 六、中介者模式示例

一、中介者模式的定义与类型

1、定义

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

2、类型

  • 行为型
二、中介者模式的适用场景
  • 系统中对象之间存在复杂的引用关系,产生的仙湖依赖关系结构混乱且难以理解
  • 交互的公共行为,如果需要改变行为则可以增加新的中介者类
三、中介者模式的优点
  • 将一对多转化成了一对一、降低程序复杂度
  • 类之间解耦
四、中介者模式的缺点
  • 中介者过多,导致系统复杂
五、中介者模式相关设计模式
  • 中介者模式和观察者模式
六、中介者模式示例

以在学习群发送消息为例进行代码演示

1、代码结构如下: 在这里插入图片描述

2、定义一个学习组类

package com.rf.designPatterns.behavioral.mediator;

/**
 * @description: 定义一个学习组类
 * @author: xz
 */
public class StudyGroup {

    //展示消息的方法
    public static void showMessage(User user,String message){
        System.out.println(user.getName()+":"+message);
    }
}

3、定义一个用户类

package com.rf.designPatterns.behavioral.mediator;

/**
 * @description: 定义一个用户类
 * @author: xz
 */
public class User {
    private String name;
    //构造方法
    public User(String name) {
        this.name = name;
    }
    //getter、setter方法
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    //用户发送消息,由中介者去展示消息
    public void showMessage(String message){
        StudyGroup.showMessage(this,message);
    }

}

4、中介者模式的测试类

package com.rf.designPatterns.behavioral.mediator;

/**
 * @description: 中介者模式的测试类
 * @author: xz
 */
public class Test {
    public static void main(String[] args) {
        User xz = new User("xz");
        User jack = new User("jack");
        xz.showMessage("你好,jack。开始学习java设计模式");
        jack.showMessage("你好,xz!现在开始");

    }
}

5、运行测试类,如下图:

在这里插入图片描述

6、UML类图如下: 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0818s