設計模式 中介者模式

2021-10-21 05:53:30 字數 1828 閱讀 7257

設計模式簡介

設計模式(design pattern)代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。

設計模式是一套被反覆使用的、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了重用**、讓**更容易被他人理解、保證**可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使**編制真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣。專案中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了乙個在我們周圍不斷重**生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。

中介者模式

中介者模式(mediator pattern)是用來降低多個物件和類之間的通訊複雜性。這種模式提供了乙個中介類,該類通常處理不同類之間的通訊,並支援松耦合,使**易於維護。中介者模式屬於行為型模式。

優點:

降低了類的複雜度,將一對多轉化成了一對一。

各個類之間的解耦。

符合迪公尺特原則。

缺點:中介者會龐大,變得複雜難以維護。

使用場景:

系統中物件之間存在比較複雜的引用關係,導致它們之間的依賴關係結構混亂而且難以復用該物件。

想通過乙個中間類來封裝多個類中的行為,而又不想生成太多的子類。

**注意事項:**不應當在職責混亂的時候使用。

例項以中介,買房賣房為例:

買賣抽象類

public

abstract

class

businessinte***ce

public

abstract

void

inform()

;public

abstract

void

receive()

;}

public

class

sellhouse

extends

businessinte***ce

@override

public

void

receive()

}

public

class

buyhouse

extends

businessinte***ce

@override

public

void

receive()

}

中介類

public

class

intermediary

public

void

send

(businessinte***ce business)}}

}

執行及結果

public

class

demo

}

我有套房子要賣

我收到有人要賣房子的資訊了

====

====

我要買房子

我收到有人要買房子的資訊了

設計模式 中介者模式

假如沒有總經理,下面三個部門 財務部,市場部,研發部。財務部要發工資,讓大家核對公司需要跟市場部和研發部都通氣 市場部要接新專案,需要研發部處理技術 需要財務部出資金。市場部跟各個部門打交道。雖然只有三個部門,但是關係非常亂。實際上,公司都有總經理。各個部門有什麼事情都通報到總經理這裡,總經理再通知...

設計模式 中介者模式

在我們的日常生活中經常需要購買各種各樣的東西,房子 車子 生活用品等等。那麼我們並不會對各個產品都了解,所以銷售人員應運而生,他們了解產品,然後他們根據你的需求在向你們推薦符合你們要求的產品。這些銷售人員就相當於中介,處於客戶和產品之間,為你們搭橋牽線。這就是這篇需要講述的乙個設計模式 中介者模式。...

設計模式 中介者模式

在學習這個模式之前,我們先來回顧一下乙個物件導向的設計原則 迪公尺特原則,這個原則告訴我們 乙個物件盡可能少跟其他物件進行關聯,就像乙個人要少跟陌生人說話一樣。而中介者模式,也正是為了協調多個物件之間複雜的引用關係。我們來看乙個例子,雖然這個例子不太好,後期想個好一點的例子再改。在中介者模式中,主要...