設計模式學習之中介者模式

UML結構類圖的經常使用畫法前端

簡單工廠android

設計模式學習以外觀模式ios

設計模式學習之適配器模式git

設計模式學習之單例模式github

設計模式學習之工廠方法模式設計模式

設計模式學習之生成器模式post

設計模式學習之原型模式學習

Demo傳送門設計

先認識一下什麼是中介者模式cdn

用一箇中介對象來封裝一系列的對象交互,中介者使得各對象不須要顯式地相互引用,從而使其耦合鬆散,並且能夠獨立地改變它們之間的交互。

如此中介者須要知道全部的對象,其餘對象只和中介者交互,而不用彼此交互,就能夠解耦對象之間的關係。

案例:

產品提出需求,由開發組進行開發實現。若是沒有中介者進行協調,產品在有了新的想法後,還要和開發同事進行溝通,他既要知道後臺,也要知道前端,還要知道客戶端(ios,android)的具體職能,這樣纔好對具體的工做進行安排,可是咱們顯然知道這是不可能的,因此現實中每每有一個項目經理在中間調停,一來是討論需求,二來是分配需求,肯定最後的評估時間。咱們就以這個爲例來講明一下中介者模式是如何工做的。

  1. 首先來看一些UML結構圖

  1. 定義抽象對象類,主要負責約束對象的類型,實現一些具體類之間的公共功能。如圖中所示的具體的類都應該知道中介者對象

  1. 各個對象類,實現本身的業務,在須要與其餘類通訊的時候,就與持有的中介者通訊

  1. 中介者接口,定義各個具體類之間交互須要的方法,能夠是公共的通訊方法

  1. 具體中介者實現:此類須要瞭解各個具體類,並維護各個對象,負責協調各個對象的交互關係

  1. 客戶端引用

  1. 結果

中介者模式優缺點:

優勢:

  • 鬆散耦合
  • 集中控制交互
  • 多對多變成一對多

缺點:

  • 過分集中化,若是對象的交互很是多並且較爲複雜,中介者會變得十分複雜,難於管理和維護

中介者適用場景:

  • 若是一組對象之間的通訊方式較爲複雜,致使相互依賴,結構混亂,能夠採用中介者模式,把對象的交互管理起來,各個對象都只須要和中介交互
  • 若是一個對象引用不少的對象,並直接跟對象交互,致使難易複用該對象,能夠採用中介者模式,把這個對象跟其餘對象的交互封裝到中介者中
相關文章
相關標籤/搜索