在現(xiàn)實(shí)生活中,有很多中介者模式的身影,例如QQ游戲平臺(tái),聊天室、QQ群和短信平臺(tái),這些都是中介者模式在現(xiàn)實(shí)生活中的應(yīng)用,下面就具體分享下我對(duì)中介者模式的理解。
一、 中介者(Mediator)模式
從生活中的例子可以看出,不論是QQ游戲還是QQ群,它們都是充當(dāng)一個(gè)中間平臺(tái),QQ用戶可以登錄這個(gè)中間平臺(tái)與其他QQ用戶進(jìn)行交流,如果沒有這些中間平臺(tái),我們?nèi)绻肱c朋友進(jìn)行聊天的話,可能就需要當(dāng)面才可以了。電話、短信也同樣是一個(gè)中間平臺(tái),有了這個(gè)中間平臺(tái),每個(gè)用戶都不要直接依賴與其他用戶,只需要依賴這個(gè)中間平臺(tái)就可以了,一切操作都由中間平臺(tái)去分發(fā)。了解完中介模式在生活中的模型后,下面給出中介模式的正式定義。
中介者模式,定義了一個(gè)中介對(duì)象來封裝一系列對(duì)象之間的交互關(guān)系。中介者使各個(gè)對(duì)象之間不需要顯式地相互引用,從而使耦合性降低,而且可以獨(dú)立地改變它們之間的交互行為。
二、 中介者模式的結(jié)構(gòu)
從生活中例子自然知道,中介者模式設(shè)計(jì)兩個(gè)具體對(duì)象,一個(gè)是用戶類,另一個(gè)是中介者類,根據(jù)針對(duì)接口編程原則,則需要把這兩類角色進(jìn)行抽象,所以中介者模式中就有了4類角色,它們分別是:抽象中介者角色,具體中介者角色、抽象同事類和具體同事類。中介者類是起到協(xié)調(diào)各個(gè)對(duì)象的作用,則抽象中介者角色中則需要保存各個(gè)對(duì)象的引用。有了上面的分析,則就不難理解中介者模式的結(jié)構(gòu)圖了,具體結(jié)構(gòu)圖如下所示: