鍍金池/ 教程/ Java/ Java中介者模式(Mediator Pattern)
Java前端控制器模式
Java工廠設(shè)計(jì)模式
Java抽象工廠模式
Java觀察者模式
Java門面模式(或外觀模式)
Java備忘錄模式
Java MVC模式
Java單例模式
Java傳輸對象模式
Java迭代器模式
Java責(zé)任鏈模式
Java命令模式
Java原型模式
Java解釋器模式
Java適配器模式
Java狀態(tài)模式
Java中介者模式(Mediator Pattern)
Java攔截過濾器模式
Java策略模式
Java組合模式
Java業(yè)務(wù)代理模式
Java裝飾模式
Java模板模式
Java橋接模式
Java過濾器模式(條件模式)
Java享元模式(Flyweight Pattern)
Java建造者(Builder)模式
Java設(shè)計(jì)模式
Java空對象模式
Java數(shù)據(jù)訪問對象模式
Java訪問者模式
Java組合實(shí)體模式
Java服務(wù)定位器模式

Java中介者模式(Mediator Pattern)

中介者模式(Mediator Pattern)用于減少多個(gè)對象或類之間的通信復(fù)雜性。 此模式提供了一個(gè)中介類,它通常處理不同類之間的所有通信,并支持通過松散耦合來維護(hù)代碼。中介者模式屬于行為模式類別。

實(shí)現(xiàn)實(shí)例

在這里通過一個(gè)聊天室的示例來演示中介者模式的使用,在聊天室中,多個(gè)用戶可以向聊天室發(fā)送消息,并且聊天室的責(zé)任是向所有用戶顯示消息。在示例中創(chuàng)建了兩個(gè)類ChatRoomUser。 用戶對象將使用ChatRoom方法來共享他們的消息。

MediatorPatternDemo這是一個(gè)演示類,它使用User對象來顯示它們之間的通信。

中介者模式(Mediator Pattern)示例的結(jié)構(gòu)如下圖所示 -

第1步

創(chuàng)建一個(gè)聊天室類- ChatRoom,如下代碼所示 -
ChatRoom.java

import java.util.Date;

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

第2步

創(chuàng)建一個(gè)用戶類- User
User.java

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

第3步

使用User對象顯示它們之間的通信。
MediatorPatternDemo.java

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

第4步

驗(yàn)證輸出,執(zhí)行上面的代碼得到以下結(jié)果 -

Sat Dec 03 17:12:59 CST 2016 [Robert] : Hi! John!
Sat Dec 03 17:12:59 CST 2016 [John] : Hello! Robert!