美文网首页
设计模式(二一)-- 中介者模式

设计模式(二一)-- 中介者模式

作者: 信仰年輕 | 来源:发表于2018-12-05 16:22 被阅读0次

源代码
GitHub源代码

1.本文目标

本文目标是为了让大家认识并理解中介者模式

2.基本套路

定义:定义一个封装一组对象如何交互的对象
类型:行为型
选择关键点:复杂的交互关系是否有共性可被中介者承担
设计原则:遵循迪米特,破坏单一职责
使用概率:10%
难度系数:中

3.适用场景

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

4.使用步骤

用栗子能更好的说明问题,请继续往下看

5.举个栗子

我们用具体的代码去更好的理解这个设计模式

5.1栗子说明

  • 背景:风清扬和令狐冲交流,传授独孤九剑
  • 目的:用中介者模式模拟

5.2使用步骤

实现代码如下:

步骤1.创建中介者,可以理解为一个群,大家都可以在这里面说话

public class StudyGroup {
    public static void showMessage(User user, String message){
        System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
    }
}

步骤2.创建用户User

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) {
        StudyGroup.showMessage(this, message);
    }
}

步骤3. 测试

 public static void main(String[] args) {
        User fengqingyang = new User("风清扬");
        User linghuchong = new User("令狐冲");

        fengqingyang.sendMessage("传授你独孤九剑");
        linghuchong.sendMessage("OK");
 }

6.优点

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

7.缺点

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

8.总结

本文只是对中介者模式进行一个分享,接下来会从创建型模式,结构型模式,行为型模式,这三大类展开一个系列分享,大家可以持续进行关注,信仰年輕的设计模式,蟹蟹啦。

相关文章

网友评论

      本文标题:设计模式(二一)-- 中介者模式

      本文链接:https://www.haomeiwen.com/subject/ullwcqtx.html