Android 常用設(shè)計(jì)模式

定義:?設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉、經(jīng)過分類的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)

目的:為了提高代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性, 使代碼編寫真正工程化, 是軟件工程的基石脈絡(luò)

一、適配器模式

定義:將一個(gè)類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個(gè)類能夠在一起工作。

對象適配器模式和類適配模式對比:

>類適配器采用了繼承的方式來實(shí)現(xiàn);而對象適配器是通過傳遞對象來實(shí)現(xiàn),這是一種組合的方式。
>類適配器由于采用了繼承,可以重寫父類的方法;對象適配器則不能修改對象本身的方法等。
>適配器通過繼承都獲得了父類的方法,客戶端使用時(shí)都會把這些方法暴露出去,增加了一定的使用成本;對? ? ?象適配器則不會。
>類適配器只能適配他的父類,這個(gè)父類的其他子類都不能適配到;而對象適配器可以適配不同的對象,只要? ? 這個(gè)對象的類型是同樣的
>類適配器不需要額外的引用;對象適配器需要額外的引用來保存對象

二、建造者模式

定義:即Builder模式,使用多個(gè)簡單的對象一步一步構(gòu)建成一個(gè)復(fù)雜的對象。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式

優(yōu)點(diǎn):1、建造者獨(dú)立,易擴(kuò)展。 2、便于控制細(xì)節(jié)風(fēng)險(xiǎn)。

缺點(diǎn):1、產(chǎn)品必須有共同點(diǎn),范圍有限制。 2、如內(nèi)部變化復(fù)雜,會有很多的建造類

三、觀察者模式

定義:定義對象間的一種一個(gè)對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)送改變時(shí),所以依賴于它的對象都得到通知并被自動(dòng)更新

button就是具體的主題,也就是被觀察者;new出來的View.OnClickListenerd對象就是具體的觀察者;OnClickListener實(shí)際上就是個(gè)接口,也就是抽象觀察者;通過setOnClickListener把觀察者注冊到被觀察者中。一旦button捕獲的點(diǎn)擊事件,即狀態(tài)發(fā)生變化的時(shí)候,就會通過回調(diào)注冊的OnClickListener觀察者的onClick方法會來通知觀察者,Button狀態(tài)發(fā)生變化。

四、單利模式



面試題:回調(diào)函數(shù)和觀察者模式的區(qū)別?

觀察者模式定義了一種一對多的依賴關(guān)系,讓多個(gè)觀察者對象同時(shí)監(jiān)聽某一個(gè)主題對象。觀察者模式完美的將觀察者和被觀察的對象分離開,一個(gè)對象的狀態(tài)發(fā)生變化時(shí),所有依賴于它的對象都得到通知并自動(dòng)刷新。回調(diào)函數(shù)其實(shí)也算是一種觀察者模式的實(shí)現(xiàn)方式,回調(diào)函數(shù)實(shí)現(xiàn)的觀察者和被觀察者往往是一對一的依賴關(guān)系。所以最明顯的區(qū)別是觀察者模式是一種設(shè)計(jì)思路,而回調(diào)函數(shù)式一種具體的實(shí)現(xiàn)方式;另一明顯區(qū)別是一對多還是多對多的依賴關(guān)系方面

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容