設計模式 中介者模式

2021-10-22 23:44:08 字數 1434 閱讀 7820

程式應用有大大小小的物件的組成,將大物件拆分成小物件可以提高復用性,但是相對應的可能也會造成物件之間的關聯程度增大,降低復用性。中介者模式的設計在於提供乙個統一的中間者管理這些物件,降低物件之間的耦合性。將物件之間的多對多關係轉化為一對多的關係

假設有一場比賽,分為兩個隊伍,當乙個隊伍全部died後,另外乙個隊伍獲勝,如果不存在中介者的時候,需要儲存自己夥伴和敵人,每個物件之間緊緊耦合在一起。如果想增加同夥和增加隊伍等都會非常麻煩,下面引入一種中介者進行統一管理,減少物件之間的耦合關係

class

player

died()

lose()

失敗`);}

win(

)獲勝`);

}}inte***ce

ipmanager

const playermanager:ipmanager =

(function()

;return

,lose

(player:player)

}// 本隊全部死亡

if(all_dead)

for(

const color in players))}

}}}}

})()

const player1 =

newplayer

("blue"

,"張一");

const player2 =

newplayer

("blue"

,"張二");

const player3 =

newplayer

("blue"

,"張三");

const player4 =

newplayer

("red"

,"王一");

const player5 =

newplayer

("red"

,"王二");

const player6 =

newplayer

("red"

,"王三");

player1.

died()

;player2.

died()

;player3.

died()

;//張一失敗

//張二失敗

//張三失敗

//王一獲勝

//王二獲勝

//王三獲勝

如果想在當前基礎上增加隊伍,或者增加其他功能也是非常的方便

中介者模式可以有效降低物件之間的耦合性,符合最小知識原則,即物件盡可能少的了解其他物件。但也不是沒有缺點,中介者模式其實是將物件之間的關聯複雜性轉移為中介者物件的複雜性,中介者物件本身是乙個非常龐大的系統,難以維護。

寫程式是快速交付生產,而不是過渡的堆砌模式和設計

設計模式 中介者模式

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

設計模式 中介者模式

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

設計模式 中介者模式

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