中介者模式(Mediator Pattern)

2022-04-29 09:18:07 字數 2279 閱讀 4413

中介者模式(mediator pattern)是用來降低多個物件和類之間的通訊複雜性。這種模式提供了乙個中介類,該類通常處理不同類之間的通訊,並支援松耦合,使**易於維護。中介者模式屬於行為型模式。

用乙個中介物件來封裝一系列的物件互動,中介者使各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。

中介者模式將多個類相互耦合,形成的網狀結構,分離為星型結構。

關鍵**:物件 colleague 之間的通訊封裝到乙個類中單獨處理。

它主要包含如下幾個角色:

優點:降低了類的複雜度,將一對多轉化成了一對一。

各個類之間的解耦。

符合迪公尺特原則(乙個物件應當對其他物件有盡可能少的了解)。

缺點:中介者會龐大,變得複雜難以維護。

使用場景:

系統中物件之間存在比較複雜的引用關係,導致它們之間的依賴關係結構混亂而且難以復用該物件。

想通過乙個中間類來封裝多個類中的行為,而又不想生成太多的子類。

抽象中介類

package com.designpattern.mediatorpattern;

/** * 抽象中介類

* * @author zhongtao on 2018/12/19

*/public abstract class mediator

抽象同事類

package com.designpattern.mediatorpattern;

/** * 抽象同事類

* * @author zhongtao on 2018/12/19

*/public class colleague

}

具體同事類a和b

package com.designpattern.mediatorpattern;

/** * 具體同事類a

* * @author zhongtao on 2018/12/19

*/public class colleaguea extends colleague

public void getmessage(string message)

public void contact(string message)

}/**

* 具體同事類b

* * @author zhongtao on 2018/12/19

*/public class colleagueb extends colleague

public void getmessage(string message)

public void contact(string message)

}

具體中介類

package com.designpattern.mediatorpattern;

/** * 具體中介類

* * @author zhongtao on 2018/12/19

*/public class concretemediator extends mediator

public void setcolleaguea(colleaguea colleaguea)

public colleagueb getcolleagueb()

public void setcolleagueb(colleagueb colleagueb)

@override

public void contact(string content, colleague colleague) else }}

客戶端 測試中介者模式

package com.designpattern.mediatorpattern;

/** * 客戶端 測試中介者模式

* * @author zhongtao on 2018/12/19

*/public class client

}

測試結果

同事b:lina 獲取資訊:我是peter,想請lina晚上看電影

同事a:peter 獲取資訊:我是lina,可以滴

中介者模式

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

中介者模式

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

中介者模式

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