中介者模式(Mediator Pattern)是用來降低多個對象和類之間的通信復雜性。這種模式提供了一個中介類,該類通常處理不同類之間的通信,并支持松耦合,使代碼易于維護。中介者模式屬于行為型模式。
關鍵代碼:對象 Colleague 之間的通信封裝到一個類中單獨處理。
優點: 1、降低了類的復雜度,將一對多轉化成了一對一。 2、各個類之間的解耦。 3、符合迪米特原則。
缺點:中介者會龐大,變得復雜難以維護。
- 創建中介類。
/**
* 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);
}
}
- 創建 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);
}
}
- 使用 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!");
}
}
- 打印結果
Sun Sep 10 19:56:53 CST 2017 [Robert] : Hi! John!
Sun Sep 10 19:56:53 CST 2017 [John] : Hello! Rebort!