設計模式 - 行爲型 - 中介者模式

介紹

意圖:用一箇中介對象來封裝一系列的對象交互,中介者使各對象不須要顯式地相互引用,從而使其耦合鬆散,並且能夠獨立地改變它們之間的交互。html

主要解決:對象與對象之間存在大量的關聯關係,這樣勢必會致使系統的結構變得很複雜,同時若一個對象發生改變,咱們也須要跟蹤與之相關聯的對象,同時作出相應的處理。設計模式

什麼時候使用:多個類相互耦合,造成了網狀結構。this

如何解決:將上述網狀結構分離爲星型結構。設計

實現

咱們經過聊天室實例來演示中介者模式。實例中,多個用戶能夠向聊天室發送消息,聊天室向全部的用戶顯示消息。咱們將建立兩個類 ChatRoom 和 User。User 對象使用 ChatRoom 方法來分享他們的消息。3d

MediatorPatternDemo,咱們的演示類使用 User 對象來顯示他們之間的通訊。code

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

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

public class MediatorPatternDemo {
   public static void main(String[] args) {
      User robert = new User("Robert");
      User john = new User("John");
 
      robert.sendMessage("Hi! John!");
      john.sendMessage("Hello! Robert!");
   }
}

Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John!
Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert!

參考及引用

1.中介者模式htm

2.設計模式之中介者模式對象

相關文章
相關標籤/搜索