中介者模式

2021-06-21 04:23:21 字數 917 閱讀 3428

中介者模式(mediator pattern):

1、抽象中介者(mediator)角色:抽象中介者角色定義統一的介面用於各同事角色之間的通訊。

具體中介者(concrete mediator)角色:具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。

同事(colleague)角色:每乙個同事角色都知道中介者角色,而且與其他的同事角色通訊的時候,一定要通過中介者角色協作。每個同事類的行為分為兩種:一種是同事本身的行為,比如改變物件本身的狀態,處理自己的行為等等,這種方法叫做自發行為(self-method),與其他的同事類或中介者沒有任何的依賴;第二種是必須依賴中介者才能完成的行為,叫做依賴方法(dep-method)。

2、中介者模式的優點就是減少類間的依賴,把原有的一對多的依賴變成了一對一的依賴,同事類只依賴中介者,減少了依賴,當然也同時減低了類間的耦合。它的缺點呢就是中介者會膨脹的很大,而且邏輯會很複雜,因為所有的原本n個物件直接的相互依賴關係轉換為中介者和同事類的依賴關係,同事類越多,中介者的邏輯就複雜。

3、中介者模式適用於多個物件之間緊密耦合,耦合的標準可以這樣來衡量:在類圖中出現了蜘蛛網狀結構,在這種情況下一定要考慮使用中介者模式,有利於把蜘蛛網梳理為乙個星型結構,使原本複雜混亂關係變得清晰簡單。

4、適用場景:

1、n個物件之間產生了相互的依賴關係,其中n大於2,注意是相互的依賴;

2、多個物件有依賴關係,但是依賴的行為尚不確定或者有發生改變的可能,在這種情況下一般建議採用中介者模式,降低變更引起的風險擴散;

3、產品開發。其中乙個明顯的例子就是mvc框架,把這個應用到產品中,可以提公升產品的效能和擴充套件性,但是作為專案開發就未必,專案是以交付投產為目標,而產品以穩定、高效、擴充套件為宗旨。

中介者模式

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

中介者模式

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

中介者模式

一 作用 降低類與類之間的耦合程度,當a和b有雙向的關係時,就產生了較強的耦合,這時候引入乙個中介者的類,a與b都只和這個中介者類相關,由中介者類來控制a與b的關係,這樣就完成了解耦。二 例子 有兩種工人workera 和workerb,他們需要一起工作,如果不使用中介者模式,那麼就需要兩個類,wo...