JavaMediatorPattern(中介者模式)

凌浩雨發表於2017-09-10

中介者模式(Mediator Pattern)是用來降低多個物件和類之間的通訊複雜性。這種模式提供了一箇中介類,該類通常處理不同類之間的通訊,並支援鬆耦合,使程式碼易於維護。中介者模式屬於行為型模式。

關鍵程式碼:物件 Colleague 之間的通訊封裝到一個類中單獨處理。

優點: 1、降低了類的複雜度,將一對多轉化成了一對一。 2、各個類之間的解耦。 3、符合迪米特原則。
缺點:中介者會龐大,變得複雜難以維護。

  1. 建立中介類。

/**
 * 1. 建立中介類。
 * @author mazaiting
 */
public class ChatRoom {
    public static void showMessage(User user, String message){
        System.out.println();System.out.println(new Date().toString()
                 + " [" + user.getName() +"] : " + message);
    }
}
  1. 建立 User 類。
/**
 * 2. 建立 user 類。
 * @author mazaiting
 */
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){
        ChatRoom.showMessage(this, message);
    }
}
  1. 使用 User 物件來顯示他們之間的通訊。
/**
 * 3. 使用 User 物件來顯示他們之間的通訊。
 * @author mazaiting
 */
public class Client {
    public static void main(String[] args) {
        User robert = new User("Robert");
        User john = new User("John");
        
        robert.sendMessage("Hi! John!");
        john.sendMessage("Hello! Rebort!");
    }
}
  1. 列印結果
Sun Sep 10 19:56:53 CST 2017 [Robert] : Hi! John!

Sun Sep 10 19:56:53 CST 2017 [John] : Hello! Rebort!


相關文章