天天看點

設計模式--擴充卡模式

first:推薦看Terry的設計模式的blog,真的很精彩,通俗易懂。

second: 首先拿出當時我老師教我設計模式時給的資料裡面的一段話:

比較形象的,通俗講解設計模式的一段話: “ 在朋友聚會上碰到了一個美女Sarah,從香港來的,可我不會說粵語,她不會說國語,隻好求助于我的朋友kent了,他作為我和Sarah之間的Adapter,讓我和Sarah可以互相交談了(也不知道他會不會耍我) 擴充卡(變壓器)模式:把一個類的接口變換成用戶端所期待的另一種接口,進而使原本因接口原因不比對而無法一起工作的兩個類能夠一起工作。适配類可以根據參數返還一個合适的執行個體給用戶端。 ”

 首先定義接口,抽象要設配的方法:

結果為:

lily is boy

lily is girl

類擴充卡模式和對象擴充卡模式

對象擴充卡模式:把被适配的類的api轉換為目标類的api,與類的擴充卡模式不同,對象擴充卡模式不是使用繼承連結到需要适配的類,而是使用代理關系連接配接到需要适配的類,直接将要适配的對象傳遞到adapter類裡面,通過組合的形式實作接口相容,而且也避免類擴充卡模式因為繼承出現的奇怪的方法,更加靈活實用。android裡面的adapter就是對象擴充卡模式。通過将傳遞進來的資料再getview裡面進行處理,傳回統一的view對象,會發生變化的部分比如資料獨立交給使用者處理,通過觀察者模式解耦資料和UI,View和資料之間沒有依賴,一個資料可應對多套布局。

 舉個對象擴充卡的例子:

繼續閱讀