一、中介者模式介紹
1、定義與型別
定義一個封裝一組物件如何互動的物件
通過使物件明確地相互參考來促進松散耦合,并允許獨立地改變它們的互動
型別:行為型
2、適用場景
系統中物件之間存在復雜的參考關系,產生的相互依賴關系結構混亂且難以理解
互動的公共行為,如果需要改變行為則可以增加新的中介者類
3、優點
將一對多轉化成了一對一、降低程式復雜度
類之間解耦
4、缺點
中介者過多,導致系統復雜
5、相關設計模式
中介者模式和觀察者模式:這兩者經常結合使用
二、代碼示例
模擬場景:用戶在聊天室內聊天
用戶類:
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){
StudyGroup.showMessage(this, message);
}
}
聊天室類:
public class StudyGroup {
public static void showMessage(User user, String message){
// 此處可結合觀察者模式進行通知
System.out.println(new Date().toString() + "[" + user.getName() + "]" + message);
}
}
測驗類:
public class Test {
public static void main(String[] args) {
User tom = new User("tom");
User jery = new User("jery");
tom.sendMessage("hi");
jery.sendMessage("hello");
}
}
輸出:
Mon May 25 20:31:04 CST 2020[tom]hi
Mon May 25 20:31:04 CST 2020[jery]hello
三、原始碼示例
1、JDK中的Timer

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/4540.html
標籤:設計模式
上一篇:設計模式(2) 單例模式
下一篇:策略模式
