天天看點

Head First設計模式之中介者模式

又稱為調停者模式,定義一個中介對象來封裝系列對象之間的互動。中介者使各個對象不需要顯示地互相引用,進而使其耦合性松散,而且可以獨立地改變他們之間的互動。

Head First設計模式之中介者模式

組成:

  ● 抽象中介者(Mediator)角色:定義統一的接口用于各同僚角色之間的通信,其中主要方法是一個(或多個)事件方法。

  ● 具體中介者(ConcreteMediator)角色:實作了抽象中介者所聲明的事件方法。具體中介者知曉所有的具體同僚類,并負責具體的協調各同僚對象的互動關系。

  ● 抽象同僚類(Colleague)角色:定義出中介者到同僚角色的接口。同僚角色隻知道中介者而不知道其餘的同僚角色。與其他的同僚角色通信的時候,一定要通過中介者角色協作。

  ● 具體同僚類(ConcreteColleague)角色:所有的具體同僚類均從抽象同僚類繼承而來。實作自己的業務,在需要與其他同僚通信的時候,就與持有的中介者通信,中介者會負責與其他的同僚互動。

代碼結構

1、系統中對象之間存在比較複雜的引用關系,導緻它們之間的依賴關系結構混亂而且難以複用該對象。

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

1、中國加入 WTO 之前是各個國家互相貿易,結構複雜,現在是各個國家通過 WTO 來互相貿易。

2、機場排程系統。

3、MVC 架構,其中C(控制器)就是 M(模型)和 V(視圖)的中介者。

  優點: 1、降低了類的複雜度,将一對多轉化成了一對一。 2、各個類之間的解耦。 3、符合迪米特原則。

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

結果

參考:

http://www.cnblogs.com/JsonShare/p/7263876.html

http://www.runoob.com/design-pattern/mediator-pattern.html

繼續閱讀