設計模式之中介者模式

1、什麼是中介者模式

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.(用一箇中介對象封裝一系列的對象交互,中介者使各對象不須要顯示地相互做用,從而使其耦合鬆散,並且能夠獨立地改變它們之間的交互。)架構

(一)類圖

(二)角色定義

  • Mediator: 抽象中介者
  • ConcreteMediator: 具體中介者
  • Colleague: 抽象同事類
  • ConcreteColleague: 具體同事類

2、優缺點

  • 優勢:將本來一對多的依賴關係,經過中介者轉換爲1對1的依賴關係,使得類間依賴關係更爲直觀;同時經過中間者封裝了與全部同事之間的交互,分離了對象自身業務邏輯與其依賴的同事關係行爲,使得職責更清晰,業務邏輯也更易於修改了。
  • 缺點:在具體中介者類中包含了多個同事之間的交互細節,有可能會致使具體中介者類變得很複雜;抽象同事類難以抽象出同事類行爲的共性,若是提取不出來則中介類直接引入同事類的具體實現,與依賴倒置原則相沖突。

3、應用場景

一個業務須要多個對象參與,他們之間的依賴關係聯繫緊密,但卻很混亂。優化

4、我的理解

一系列的對象依賴關係複雜,層次混亂,那麼能夠用中介者模式進行重構,抽象對象的關係爲中介者與同事類的關係。重構後的架構有一箇中介者,多個同時類,原來的每個類都有一個對應的同事類, 完成本身的事情,若是這一個類須要完成的事情須要其餘類來協做的話,統一用中介者的方法來代理,中介者該方法的實現實際上就是調用另外一個具體的同事類來完成的。這樣能夠避免類之間調用關係的混亂。原來的如原來的A->B->C->B->A優化爲了A->中介者,B->中介者,C->中介者,而後中介者->A,B,C,D代理

相關文章
相關標籤/搜索