Android編程設(shè)計(jì)模式之中介者模式詳解-創(chuàng)新互聯(lián)

本文實(shí)例講述了Android編程設(shè)計(jì)模式之中介者模式。分享給大家供大家參考,具體如下:

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),和布克賽爾蒙古網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:和布克賽爾蒙古等地區(qū)。和布克賽爾蒙古做網(wǎng)站價(jià)格咨詢:18982081108

一、介紹

中介者模式(Mediator Pattern)也稱為調(diào)解者模式或調(diào)停者模式,Mediator本身就有調(diào)停者和調(diào)解者的意思。

在日常生活中調(diào)停者或調(diào)解者這個(gè)角色我們見得比較多的是“和事老”,也就是說調(diào)解兩個(gè)有爭端的人的角色,舉個(gè)不恰當(dāng)?shù)睦?,比如爸媽吵架,孩子或者雙方父母則會(huì)出面勸架或阻止?fàn)幊常@里孩子或雙方父母則是充當(dāng)?shù)氖钦{(diào)解者的模式。

而對(duì)于中介呢?大家平時(shí)聽得最多的莫過于房產(chǎn)中介了,在房地產(chǎn)飛速發(fā)展的今天,各種房產(chǎn)中介公司如雨后春筍般冒出來,房產(chǎn)中介承擔(dān)的責(zé)任很簡單,就是在買房者與賣房者之間建立一座橋梁溝通兩者,比如小民現(xiàn)在手里有套房子需要出售,于是他找房產(chǎn)中介并告訴房產(chǎn)中介房子的期望售價(jià)和房子的相關(guān)信息,然后房產(chǎn)中介則將這些信息收集匯總有時(shí)還會(huì)美化一番,然后把廣告掛在櫥窗里等待買房者,如果有人有意向購買這套房子,比如這里以小輝為例,房產(chǎn)中介就會(huì)告訴小輝關(guān)于這套房產(chǎn)的相關(guān)信息,如房齡、售價(jià)等,有時(shí)還會(huì)帶小輝去房子里實(shí)際參觀一番,最終小輝將自己的意愿告訴房產(chǎn)中介,再由房產(chǎn)中介去與小民進(jìn)行溝通。也就是說在整個(gè)房產(chǎn)協(xié)商的過程中,小民和小輝買賣雙方是很少直接接觸的,大多數(shù)情況下都是通過房產(chǎn)中介來傳達(dá)信息,可能只有在最終進(jìn)行房產(chǎn)交接時(shí)小民和小輝才會(huì)正式見面。

這就是我們現(xiàn)實(shí)生活中常見的調(diào)解者與中介者,但是,這里我們要說的中介者模式比起上述的兩個(gè)例子來要復(fù)雜的多,上面我們所述的例子中,中介者或調(diào)解者所要協(xié)調(diào)的也就兩類對(duì)象,而我們的中介者模式中需要協(xié)調(diào)的是多類對(duì)象。

這里還是舉一個(gè)小例子來說明,本書的閱讀者大多都是IT從業(yè)者,說得更準(zhǔn)確些都是做APP的,一般來說,一個(gè)做APP的公司可以分為幾大模塊:運(yùn)維、產(chǎn)品、開發(fā)、設(shè)計(jì)還有測試,每當(dāng)一個(gè)新APP開始制作或者發(fā)布新版本需要制作之前,公司會(huì)開一個(gè)研討會(huì),運(yùn)維負(fù)責(zé)市場了解用戶使用傾向,研發(fā)的會(huì)說用戶反映界面不好看要求修改界面……這樣大家你一句我一句的討論一半天也沒有啥實(shí)質(zhì)性結(jié)果,主要原因在于大家都站在自己的立場考慮問題,這樣的團(tuán)隊(duì)研討會(huì)即使再開下去也沒什么意義,這時(shí)候如果有一個(gè)人不屬于運(yùn)維、產(chǎn)品、開發(fā)、設(shè)計(jì)任一方的人站出來說,大家把各自的意見都跟我說,由我來權(quán)衡并作出最終的決定,不管決定如何你們都要照做。因?yàn)檫@個(gè)人不代表任何一方,于是大家都全票表示肯定,這么一來一個(gè)方案很快就定下來,而這個(gè)作出最終決定的人我們就稱之為中介者,這里的中介者與我們的中介者模式一樣面對(duì)的是多類對(duì)象,這里其實(shí)大家可以看到中介者模式的一些特性,每一個(gè)中介者都會(huì)知道所有的同事,比如上面我們所說的運(yùn)維、產(chǎn)品、開發(fā)、設(shè)計(jì)還有測試,但是這些同事呢可以互不相識(shí),而中介者不屬于同事的任何一方,也不偏袒任何一方,這么一說相信大家對(duì)中介者模式會(huì)有一個(gè)非常清晰的了解。

二、定義

中介者模式包裝了一系列對(duì)象互相作用的方式,使得這些對(duì)象不必相互明顯作用。從而使它們可以松散偶合。當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí),不會(huì)立即影響其他的一些對(duì)象之間的作用。保證這些作用可以彼此獨(dú)立的變化。中介者模式將多對(duì)多的相互作用轉(zhuǎn)化為一對(duì)多的相互作用。中介者模式將對(duì)象的行為和協(xié)作抽象化,把對(duì)象在小尺度的行為上與其他對(duì)象的相互作用分開處理。

三、使用場景

當(dāng)對(duì)象之間的交互操作很多且每個(gè)對(duì)象的行為操作都依賴彼此時(shí),為防止在修改一個(gè)對(duì)象的行為時(shí),同時(shí)涉及修改很多其他對(duì)象的行為,可采用中介者模式,來解決緊耦合問題。該模式將對(duì)象之間的多對(duì)多關(guān)系變成一對(duì)多關(guān)系,中介者對(duì)象將系統(tǒng)從網(wǎng)狀結(jié)構(gòu)變成以調(diào)停者為中心的星形結(jié)構(gòu),達(dá)到降低系統(tǒng)的復(fù)雜性,提高可擴(kuò)展性的作用。

四、中介者模式的UML類圖

UML類圖:

Android編程設(shè)計(jì)模式之中介者模式詳解

角色介紹:

Mediator:抽象的中介者角色,定義了同事對(duì)象到中介者的接口。

ConcreteMediator:具體的中介者角色,從具體的同事對(duì)象接收消息,同時(shí)向具體的同事對(duì)象發(fā)出命令。

Colleague:抽象同事類角色,定義了中介者對(duì)象的接口,只知道中介而不知道其他同事對(duì)象。

ConcreteColleagueA,ConcreteColleagueB:具體的同事類角色,每個(gè)具體同事類都知道本身在小范圍內(nèi)的行為,而不知道他在大范圍中的行為。

模板代碼:

抽象的中介者:

public interface Mediator {
  void change();
}

文章名稱:Android編程設(shè)計(jì)模式之中介者模式詳解-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article2/dhgdoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)