中介者模式 Mediator Pattern

2022-08-09 15:39:16 字數 1664 閱讀 5904

1.模式動機

2.模式定義

中介者模式(mediator pattern)定義:用乙個中介物件來封裝一系列的物件互動,中介者使各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。中介者模式又稱為調停者模式,它是一種物件行為型模式。

3.模式結構

中介者模式包含如下角色:

4.時序圖

5.**分析

abstract class abstractcolleague   

public void setnumber(int number)

//抽象方法,修改數字時同時修改關聯物件

public abstract void setnumber(int number, abstractcolleague coll);

}class colleaguea extends abstractcolleague

} class colleagueb extends abstractcolleague

}abstract class abstractmediator

public abstract void aaffectb();

public abstract void baffecta();

} class mediator extends abstractmediator

//處理a對b的影響

public void aaffectb()

//處理b對a的影響

public void baffecta()

}public class client

}

6.模式分析

中介者模式可以使物件之間的關係數量急劇減少。

中介者承擔兩方面的職責:

7.例項

例項:虛擬聊天室

某論壇系統欲增加乙個虛擬聊天室,允許論壇會員通過該聊天室進行資訊交流,普通會員(commonmember)可以給其他會員傳送文字資訊,鑽石會員(diamondmember)既可以給其他會員傳送文字資訊,還可以傳送資訊。該聊天室可以對**字元進行過濾,如「日」等字元;還可以對傳送的大小進行控制。用中介者模式設計該虛擬聊天室。

8.中介者模式的優缺點

優點:中介者模式的優點

缺點:中介者模式的缺點

適用環境:

9.模式應用

mvc架構中控制器

controller 作為一種中介者,它負責控制檢視物件view和模型物件model之間的互動。如在struts中,action就可以作為jsp頁面與業務物件之間的中介者。

10.模式擴充套件

中介者模式與迪公尺特法則

中介者模式與gui開發

11.總結

中介者模式

1.中間 類 namespace intermediarypattern 成員物件需要知道是哪個中介者在通知它事情 public abstract class member 各成員間要傳送訊息 public abstract void send string msg 這個方法其實是具體實施發訊息的 ...

中介者模式

中介者模式就是在物件之間的關係很複雜時用,名如其人,就像租房的黑中介一樣,如果每個房東都拿著很多租房者的資訊很麻煩,每個租房者都要拿著很多房東的資訊也麻煩,所以需要乙個中介來拿著這些資訊,租房者只需要發出租房的請求,中介會給你介紹合適的房東,房東只需要提交房屋資料就等著中介的人帶著訪客看房拿錢就行了...

中介者模式

中介者模式 mediator pattern 1 抽象中介者 mediator 角色 抽象中介者角色定義統一的介面用於各同事角色之間的通訊。具體中介者 concrete mediator 角色 具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。同事 colleague 角色...