設計模式之中介者模式

2021-08-02 02:28:27 字數 2426 閱讀 1151

1、抽象中介者,mediator

/**

* 抽象中介

*@author jin.li

* */

public

abstract

class

mediator

2、具體的中介者,主機板

/**

* 主機板中介

*@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)

}

3、抽象同事類

/**

* 抽象同事類

*@author jin.li

* */

public

abstract

class

colleague

}

4、具體的同事,cpu,cd,sound,video。

/**

* 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)

}

/**

* 音效卡同事

*@author jin.li

* */

public

class

soundcard

extends

colleague

public

void

playsound(string data)

}

5、客戶端

public

class client

}

總結:中介者模式就是用來協調多個物件之間的互動的,就像主機板,沒有主機板這個中介者,那麼cpu,cd,sound,video就需要相互建立關聯,那太複雜了。

衍生:andorid原始碼中的keyguardviewmediator就是乙個中介者,它裡面有著各種管理者。

學習筆記:《android原始碼設計模式解析與實戰》

設計模式之中介者模式

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

設計模式之中介者模式

嘮叨幾句 設計模式的案例我已經寫過大部分的案例,但是本人沒有經常寫部落格的習慣,最近在將本人之前在碼雲上的案例直接搬過來 個人感覺容易和外觀模式弄混,所以在這裡做下簡單的比較 外觀模式 本質封裝互動,組合呼叫。就是向外部提供一組功能,但是具體的實現比較複雜,內部有喝多的元件相互組合呼叫,強調的是外觀...

設計模式之中介者模式

提供乙個中介物件出來,用於封裝一系列物件的互動,從而使各物件不需要直接互動,進一步降低了物件間的耦合度。這是一種行為型設計模式。由此可見,中介者模式主要解決的是物件間所存在的大量關係,我們都知道,物件間一旦關聯緊密,必然會導致系統的複雜性增加,一旦某個物件有所修改,其關聯物件也有可能會有跟著更改,這...