中介者模式

1、中介者模式介绍

一、定义与类型

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

二、适用场景

系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解
交互的公共行为,若是须要改变行为则能够增长新的中介者类测试

三、优势

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

四、缺点

中介者过多,致使系统复杂设计

五、相关设计模式

中介者模式和观察者模式:这二者常常结合使用code

2、代码示例

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

用户类:blog

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);
    }
}

聊天室类:get

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]helloclass

3、源码示例

一、JDK中的Timer

相关文章
相关标签/搜索