免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
中介者模式

一、定義

封裝了一組對象如何交互的對象

補充定義:通過使對象明確地相互引用來促進松散耦合,并允許獨立地改變它們的交互

類型:行為型

?

二、適用場景

1、系統(tǒng)中對象之間存在復雜的引用關系,產(chǎn)生的相互依賴關系結構混亂且難以理解

2、交互的公共行為,如果需要改變行為則可以增加新的中介者類。

(聊天室:其中一個人說一句話,會通知聊天室里的所有人。如果沒有中介者,則要對所有人說一遍)

?

三、中介者模式-優(yōu)點

1、將一對對轉化為一對一,降低程序復雜度

2、類之間解耦(在聊天室說話,假設有10個人,其中一個人要對剩余的9個人說,這樣他們是耦合在一起的。如果只對聊天室說,這樣就解耦了)

?

四、中介者模式-缺點

1、中介者過多,導致系統(tǒng)復雜

?

五、中介者模式-相關設計模式

1、中介者模式和觀察者模式

使用觀察者模式,實現(xiàn)中介者模式中的角色間通訊。

?

六、Coding

場景:學習的時候,有一個學習群(如QQ群),大家交流都通過這個群來實現(xiàn)

1、用戶類

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 sendMesssage(String message){        StudyGroup.showMessage(this, message);    }}

 

2、學習群類

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

 

3、測試

 

public class Test {    public static void main(String[] args) {        User larry = new User("larry");        User nick = new User("nick");        larry.sendMesssage("Hello world");        nick.sendMesssage("Yes");    }}

  

結果

?

4、UML圖

?

?

 七、源碼中的使用

1、JDK中的Java.util 下的計時器類Timer

里面有很多schedule方法,最后調用sched方法

Timer就相當一個中介者,TimerTask相當于一個用戶。

?

來源:http://www.icode9.com/content-4-128101.html
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java設計模式精講 Debug 方式+內存分析 第24章 中介者模式講解
圖解Java設計模式之中介者模式
Student
GoF設計模式之十七 Mediator- -
中介者模式一多人聊天室
Java進階篇設計模式之十 - 訪問者模式和中介者模式
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服