1、抽象中介者,mediator
2、具體的中介者,主機板/**
* 抽象中介
*@author jin.li
* */
public
abstract
class
mediator
3、抽象同事類/**
* 主機板中介
*@author jin.li
* */
public
class
mainboard
extends
mediator
if (colleague == mcpu)
}/**
* 處理光碟機讀取資料後與其他裝置的互動
*@param cddveice
*/public
void
handlecd(cddveice cddveice)
/*** 處理cpu讀取資料後和其他裝置的互動
*@param cpu
*/public
void
handlecpu(cpu cpu)
public
void
setcpu(cpu cpu)
public
void
setcddevice(cddveice cddveice)
public
void
setsoundcard(soundcard soundcard)
public
void
setgraphicscard(graphicscard graphicscard)
}
4、具體的同事,cpu,cd,sound,video。/**
* 抽象同事類
*@author jin.li
* */
public
abstract
class
colleague
}
/**
* cpu同事
*@author jin.li
* */
public
class
cpuextends
colleague
/***@return
*/public string getdatevideo()
/*** 獲取音訊資料
*@return
*/public string getdatesound()
public
void
decodedata(string data)
}
/**
* cpu同事
*@author jin.li
* */
public
class
cpuextends
colleague
/***@return
*/public string getdatevideo()
/*** 獲取音訊資料
*@return
*/public string getdatesound()
public
void
decodedata(string data)
}
/**
* 顯示卡同事
*@author jin.li
* */
public
class
graphicscard
extends
colleague
public
void
playvideo(string data)
}
5、客戶端/**
* 音效卡同事
*@author jin.li
* */
public
class
soundcard
extends
colleague
public
void
playsound(string data)
}
總結:中介者模式就是用來協調多個物件之間的互動的,就像主機板,沒有主機板這個中介者,那麼cpu,cd,sound,video就需要相互建立關聯,那太複雜了。public
class client
}
衍生:andorid原始碼中的keyguardviewmediator就是乙個中介者,它裡面有著各種管理者。
學習筆記:《android原始碼設計模式解析與實戰》
設計模式之中介者模式
中介者模式 假如沒有總經理,下面六個個部門,財務部 市場部 研發部,財務部要發工資,讓大家核對公司需要跟市場部和研發部都通氣,市場部要接個新專案,需要研發部門處理技術,需要財務部出資金,市場部跟各個部門打交道,雖然只有六個個部門,但是關係非常亂 實際上,公司有總經理,各個部門有什麼事情都通報給總結裡...
設計模式之中介者模式
嘮叨幾句 設計模式的案例我已經寫過大部分的案例,但是本人沒有經常寫部落格的習慣,最近在將本人之前在碼雲上的案例直接搬過來 個人感覺容易和外觀模式弄混,所以在這裡做下簡單的比較 外觀模式 本質封裝互動,組合呼叫。就是向外部提供一組功能,但是具體的實現比較複雜,內部有喝多的元件相互組合呼叫,強調的是外觀...
設計模式之中介者模式
提供乙個中介物件出來,用於封裝一系列物件的互動,從而使各物件不需要直接互動,進一步降低了物件間的耦合度。這是一種行為型設計模式。由此可見,中介者模式主要解決的是物件間所存在的大量關係,我們都知道,物件間一旦關聯緊密,必然會導致系統的複雜性增加,一旦某個物件有所修改,其關聯物件也有可能會有跟著更改,這...