今天我們來講一下中介者模式。
什麼叫中介者模式呢?中介者模式,用乙個中介物件來封裝一系列的物件互動,中介者使各物件不需要顯示的相互引用,從而使其耦合鬆散,而且可以獨立的改變他們之間的互動。
我們拿兩個不認識的同事通過第三人打招呼這個情景,來看一下中介者模式是什麼樣的:
//抽象中介者類abstract class mediator
abstract class colleague
}//具體的中介者類
class concretemediator:mediator
}internal concreatecolleague2 colleague2
}//重寫傳送資訊的方法,根據物件做出選擇判斷,通知物件
public override void send(string message, colleague colleague)
else}}
//具體的同事類1
class concreatecolleague1:colleague
//傳送訊息時通常使中介者傳送出去的。
public void send(string message)
public void notify(string message)
");}
}class concreatecolleague2:colleague
public void send(string message)
public void notify(string message)
");}
}
客戶端呼叫
public static void main()
中介者模式很容易再系統中應用,也很容易再系統中誤用。當系統出現『多對多』互動複雜的物件群時,不要急於使用中介者模式,而要先反思你的系統在設計商是不是合理。
由於把物件如何協同進行了抽象,將中介作為乙個獨立的概念並將其封裝在乙個物件中,這樣關注的物件就從物件各自本身的行為轉移到他們之間的互動上來,也就是站在乙個更巨集觀的角度去看待系統。
中介者模式一般應用於一組物件以定義良好但是複雜的方式進行通訊的場合,以及想定製乙個分布在多個類中的行為,而又不想生成太多的子類的場合。
中介者模式
1.中間 類 namespace intermediarypattern 成員物件需要知道是哪個中介者在通知它事情 public abstract class member 各成員間要傳送訊息 public abstract void send string msg 這個方法其實是具體實施發訊息的 ...
中介者模式
中介者模式就是在物件之間的關係很複雜時用,名如其人,就像租房的黑中介一樣,如果每個房東都拿著很多租房者的資訊很麻煩,每個租房者都要拿著很多房東的資訊也麻煩,所以需要乙個中介來拿著這些資訊,租房者只需要發出租房的請求,中介會給你介紹合適的房東,房東只需要提交房屋資料就等著中介的人帶著訪客看房拿錢就行了...
中介者模式
中介者模式 mediator pattern 1 抽象中介者 mediator 角色 抽象中介者角色定義統一的介面用於各同事角色之間的通訊。具體中介者 concrete mediator 角色 具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。同事 colleague 角色...