1.15(設計模式)中介者模式

中介者模式主要解決多個對象和類之間的通訊複雜度,主要經過一箇中介類接受全部消息,而後再進行轉發。html

這樣能夠下降多個對象和類之間的通訊複雜度,由原來的網狀接口轉變爲星型結構。java

 

           網狀結構                                            星型結構測試

圖片來自:   https://www.runoob.com/design-pattern/mediator-pattern.html   zml1234this

 

 

想象一下,若是上圖中六個對象是聊天室中六我的,若是不採用中介模式,那麼對象1要想其餘全部對象發送消息,對象而也是如此。spa

這樣對象多了後,通訊的過程很複雜,並且結構混亂不利於後期維護。code

咱們在這裏使用一箇中介,全部對象都將消息發送給中介者,而後由中介者進行轉發。htm

這樣了不只結構清晰,並且後期維護也方便。對象

 

接下來看一個例子blog

中介類接口

import java.util.Date;

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

 

 

聊天室用戶

User

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

 

 

測試

public class Main {
    public static void main(String[] args) {
        User hcf = new User("hcf");
        User zrx = new User("zrx");
        hcf.sendMessage("你好!zrx");
        zrx.sendMessage("你好,hcf");
    }
}
運行結果:
Tue Jun 11 11:16:28 CST 2019 [hcf] : 你好!zrx Tue Jun 11 11:16:28 CST 2019 [zrx] : 你好,hcf

 

 

 

參考資料:

https://www.runoob.com/design-pattern/mediator-pattern.html

相關文章
相關標籤/搜索