[大話設計模式] 重點筆記:仲介者模式 (Mediator)

  • 3225
  • 0

[大話設計模式] 重點筆記:仲介者模式 (Mediator)

[Ch.25]

原文定義:
Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.

UML圖:
p.379或參考這裡

適用時機:
1.一組定義良好的物件,以複雜的方式進行相互通訊(作用)的場合。
2.想訂製一個分佈在多個類別中的行為,但又不想增加太多子類別的場合。


模式特色:
透過仲介者物件,可以將系統的「網狀結構」變成「星型結構」,讓物件間不再互相直接的聯繫,而是透過仲介者與另一物件相互作用。

優點:
將物件的協作進行抽象,可以站在一個更宏觀的角度去看整個系統。

缺點:
雖然可以透過仲介方式來減少各個被仲介的耦合,但同時也會增加仲介者本身的複雜性及重要性,只要仲介者出錯,系統也會出問題。
因此,當系統出現「多對多」互動複雜的物件群時,先不要急著用仲介者模式,而要先反省系統設計上是否合理。

例子:
Windows/web Form(ConcreteMediator)中的各控制項(ConcreteColleague)之間的運作模式。

參考資料:
http://www.dofactory.com/Patterns/PatternMediator.aspx
http://www.webdsai.idv.tw/?p=2280