Aha!設計模式 91 中介者模式 3)

2021-09-24 09:56:12 字數 771 閱讀 4895

結構

中介者模式的想法是當多個物件為了同乙個目的需要相互協作時,指定乙個中介物件作為業務的中樞,以降低各個物件之間的耦合程度,其結構如下:

參與者

• mediator(抽象中介者類)

—中介者類mediator可以定義介面用於與各同事(colleague)物件之間通訊。之所以說是可以,是因為定義乙個對將來也適用的通知介面並不是一件容易的事。要麼擴充套件性不好,要麼過於模糊,而且由此帶來的好處也不是很顯著。

•concretemediator(具象中介者類)

— 具象中介者類了解並維護各個同事物件。中介者類的職責就是吸收軟體功能中無法共通的部分,因此這種強耦合不算什麼缺點。

— 具象中介者了解類同事物件的細節,因此也是協調各同事物件實現協作行為的最佳人選。

— 有一點比較模糊:中介者是否算是同事的一員。作者的觀點中介者是作為管理者似乎說明更加順暢。

• colleague(同事類)

— 同事類(只)了解中介者物件。

由於中介者類的存在,同事類不需要了解軟體的業務邏輯,只是根據自身的功能需求和中介者進行通訊。

協作

同事物件和中介者物件之間進行請求和資訊的互動,而中介者根據業務的需求對資訊進行處理或**。

注:文中類中引用自《設計模式》一書。

Aha!設計模式 92 中介者模式 4)

效果 使用中介者模式可以 有利於提煉可復用的共通功能。所有的同事類只需要和處於資訊交換中心的中介者類進行互動,而不需要知道其他控制項的存在。這樣既減少了溝通渠道,又降低了同事類之間的耦合性。業務邏輯容易理解。終結者類作為資訊交換的中心,同時也是資訊處理的中心。由於所有和業務邏輯相關的內容都集中在一處...

設計模式 21 中介者模式

中介者模式 用乙個中介物件來封裝一系列的物件互動 中介者 就像我們在租房子一樣,有租房子的中介 抽象中介者 mediator package com.actionpattern.intermediary.edition1 抽象中介者 mediator public abstract class me...

設計模式17 中介者模式

中介者模式 mediator pattern 是用來降低多個物件和類之間的通訊複雜性。這種模式提供了乙個中介類,該類通常處理不同類之間的通訊,並支援松耦合,使 易於維護。中介者模式屬於行為型模式。不應當在職責混亂的時候使用。建立中介類 聊天室,負責傳送通訊 include include inclu...