1. 程式人生 > >行為型模式——中介者模式(Mediator Pattern)

行為型模式——中介者模式(Mediator Pattern)

開頭

      今天我們學習一下中介者模式,中介,什麼是中介呢?中介指在不同事物或同一事物內部對立兩極之間起居間聯絡作用的環節。對立的兩極通過中介聯成一體。中介因對立面的鬥爭向兩極分化,導致統一體的破裂。可能大家一看就懵逼,說白了就是兩個人之間聯絡,中間多了一個第三者,好比我們租房子的中介,好比我們平時通過第三方和自己親人朋友聊天,例如QQ,微信等都是中介者。

內容

       關於中介者模式我們日常可能都有所瞭解,他給我們最大的幫助就是可能找房子,我將自己的住房資訊告訴中介,中介代替我去找合適的房源,然後與房主進行溝通。

      場景一:沒有中介,我自己找到了房主,然後和房主商量好,自己要住房,所有的手續都辦完了,商量住房價錢的時候,發現自己資金不足,不得不取消住房。這就好比程式碼都寫好了,忽然某一個物件的引數狀態發生改變,所有其他的物件資訊都要發生改變。

      場景二:有中介:我自己找到了中介這個平臺,只需要將自己的資訊告訴中介,中介根據我的情況,算好,這次租房要花費多少錢,就不用人工去計算了,中介者最主要的作用就是起了協調作用。他們將一個物件的實際情況交給程式去做,確保資訊無誤。

  中介者模式大致分為四類,分別為抽象同事類(Colleague)、具體同事類(ConcreteColleague)抽象中介者(Mediator)、具體中介者(ConcreteMediator)

抽象同事類(Colleague):定義具體同事類的公有方法

抽象中介者(Mediator):宣告一個介面,用於具體同事之間的通訊


具體同事類(ConcreteColleague):1.先和通訊者之間進行通訊,2.通過中介者與其他具體同事類實現通訊。



具體中介者(ConcreteMediator):協調各個具體同事者之間的通訊。

客戶端:


顯示結果:


總結

中介者模式(Mediator Pattern):用一箇中介物件(中介者)來封裝一系列的物件互動,中介者使各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。中介者模式又稱為調停者模式,它是一種物件行為型模式。

優點:(1)減少物件之間直接互動產生的錯誤,多個物件之間的互動(多對多),變成了通過中介者,形成了一對錯的模式。

          (2)將各個同事時間接解耦,形成獨立的類,使系統變得鬆耦合,可靈活的增加新的中介者以及具體同事類。

缺點:(1)中介者承擔角色任務重,中介者出現問題,導致系統崩潰。

         (2)增加新的具體同事類,需更改具體中介者類,違背了開閉原則,但是可以觀察者和狀態者模式可以更改該問題。

適用環境:(1)多個物件之間進行復雜的相互通訊。

                 (2)一個物件和多個物件直接通訊,那一複用該物件(給大家發相同訊息,確不得不一個個的傳送的時候)。

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

    關於中介者模式的學習就先到這裡,如果本篇部落格對於初學者的您有一定的幫助,記得給博主點贊哦。

相關推薦

行為模型 中介模式

獨立 per com 行為模式 耦合 define 模型 warn gets 行為型模型 中介者模式 Mediator抽象中介者 中介者類的抽象父類。 concreteMediator 具體的中介者類。 Colleag

行為模式——中介模式(Mediator Pattern)

開頭      今天我們學習一下中介者模式,中介,什麼是中介呢?中介指在不同事物或同一事物內部對立兩極之間起居間聯絡作用的環節。對立的兩極通過中介聯成一體。中介因對立面的鬥爭向兩極分化,導致統一體的破裂

23種設計模式--中介模式-Mediator Pattern

ole 缺點 業務 -m ram -- 成了 ons 錯誤 一、中介者模式的介紹 中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,當然筆者也希望來個婚姻中介給我介紹一個哈哈哈,,回歸正題中介者模式分成中介者類和用戶類,根據接口編程的方式我們再把中介和用戶類

用心理解設計模式——中介模式 / 調停模式 (Mediator Pattern)

前置文章: 用心理解設計模式——設計模式的原則  設計模式相關程式碼已統一放至 我的 Github   一、定義   行為型模式之一。 Define an object that encapsulates how a set of obje

設計模式-行為模式-中介模式

設計模式-行為型模式-中介者模式 行為型模式 劃分類和物件的職責。 中介者模式 進銷存管理,即採購,銷售,庫存。 其中類圖 程式碼如下 public class Purchase { // 採購IBM電腦 public void buyIBMcomputer(int numb

行為模式-中介模式

  行為型模式又可以分成以下四類:第一類:通過父類與子類的關係進行實現。第二類:兩個類之間。第三類:類的狀態。第四類:通過中間類   命令模式屬於第四類,通過中間類   我們來看一下兩個類之間是如何通過中間類來相互影響的 package behavior.pattern.intermediator

第19章 行為模式中介模式

1. 中介者模式(Mediator Pattern)的定義 (1)定義:用一個中介物件來封裝一系統物件互動。中介者使得各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。         ①中介者模式主要用來將同事類之間網狀結構變為星狀結構,

設計模式------中介模式(Mediator Pattern)

//IChatroom.h class User; class IChatroom   { public:     IChatroom();     virtual ~IChatroom();     virtual void Register(User*) = 0;     virtual void Sen

java設計模式---中介模式(Mediator pattern)

java設計模式—中介者模式(Mediator pattern) 1. 概述 如果在一個系統中物件之間存在多對多的相互關係,我們可以將物件之間的一些互動行為從各個物件中分離出來,並集中封裝在一箇中介者物件中,並由該中介者進行統一協調,這樣物件之間多對多的複雜

[19/04/30-星期二] GOF23_行為模式(中介模式、命令模式、解釋器模式、訪問者模式)

調用 匯報 需求 med ssi client 執行者 pack part 一、中介者模式(meditor) 【中介】 /*** * 抽象中介者接口和其具體實現類"經理"類 */ package cn.sxt.meditor; i

設計模式-中介模式Mediator

中介者模式是行為型模式的一種,在Mediator中,類之間的互動行為被統一放在Mediator物件中,物件通過Mediator物件同其他物件互動。 角色和職責: 1.中介者介面(Mediator):    中介者類的抽象父類 2.具體中介者(Concrete Mediator) -

設計模式--中介模式Mediator

 本文是設計模式學習筆記的第三篇文章,主要分析的是中介者模式。是清華大學出版社的《研讀設計模式》的讀書筆記。在此感謝原作者。 這次應用的是一個例項去理解中介者模式。 先來看這樣一個例項,電腦播放電影。 我們需要一個DVD,然後放入播放器中,播放器獲得資料傳遞給CPU

設計模式——中介模式/調停模式(C++實現)

con 分享 else .cn sign name 得到 ted esp 1 #include <iostream> 2 #include <string> 3 4 using namespace std;

大話設計模式中介模式

java string word 實例 發生 scrip ron 成了 維護 中介者模式(Mediator Pattern)是用來減少多個對象和類之間的通信復雜性。這種模式提供了一個中介類,該類通常處理不同類之間的通信,並支持松耦合。使代碼易於維護。中介

設計模式------中介模式

而且 作用 dos some 自己的 eth pan 沒有 self 中介者模式定義 用一個中介對象封裝一系列的對象交互,中介者使各對象不需要顯示地相互作用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。 Mediator抽象中介者角色 抽象中介者角色定義統一的接

委托模式/中介模式/策略模式

ets name delegate end 動態創建 list 相同 工廠模式 col 委托模式 通過分配或委托到其他對象,去除核心對象中的判決或復雜功能,動態添加新功能. class A { public function song($songList)

設計模式——中介模式

解耦 用戶名 進行 edi 目標 tac visitor 適用場景 行為 中介者模式定義 中介者對象封裝系列的對象交互,中介者使得對象不需要顯示地相互作用,從而松耦合,能夠獨立改變它們之間的交互。 中介者模式角色 抽象中介者: 用於各個同事類之間的通信,同事類對象到中介者

設計模式-中介模式

設計模式 中介者模式 場景:服務端與客戶端通過webSocket方式通話,websocket充當中介 abstract class TongXinObject { protected Agency agency; public TongXinO

觀察模式+中介模式

有一個產品,他有多個觸發事件,他產生的時候觸發一個建立事件,修改的時候觸發修改事件,刪除的時候觸發刪除事件,這就類似於我們的文字框,初始化(也就是建立)的時候要觸發一個onLoad或onCreate事件,修改的時候觸發onChange事件,雙擊(類似於刪除)的時候又觸發onDbClick事件,我們今

設計模式 --- 中介模式

1.定義 中介者模式包裝了一系列物件相互作用方式,使得這些物件不必相互明顯作用。從而使他們可以鬆耦合。當某些物件之間作用發生改變的時候,不會立即影響其他的一些物件之間的作用。保證這些作用可以彼此獨立變化。中介者模式將多對多的相互作用轉化為一對多的相互作用。中介者模式將物件的行為和協作抽象化,把物