中介者模式

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

相關文章
相關標籤/搜索