介面卡的使用場景(有很多種,我截止目前為止只看到一種):
//有乙個形狀介面,其中定義了2個方法,顯示和隱藏
inte***ce sharp
然後,有2個類實現類這個介面//實現形狀的線條類
class line implements sharp
void hide(){}
}//實現形狀類的正方形類
class square implements sharp
void hide(){}
}
隨後,我突然又想加入乙個圓的類,這時,如果我有乙個同事已經完成類圓類的定義,我當然希望直接把他的類直接拿過來用,這樣我就省下類實現圓類所需要的時間。但是,好事多磨,來看一下我同事鞋的圓類
//同事的圓類
class mycircle
void undisplay(){}
}
這。。。我慫了,因為方法名完全不同,我又不想去 改動它裡面的實現過程,不然可能會有什麼不可知的錯誤。。
於是,介面卡這個時候就有作用咯~
我們可以這樣來:
class circle implements sharp
//利用mycircle的顯示方式顯示
void show()
//利用mycircle的隱藏方式隱藏
void hide()
}
這樣,我們就在同事的類和我自己的圓類之間實現類橋梁,這就是——介面卡。
這樣做有什麼好處呢?很顯然,按照介面卡的思路來,本身的功能靠呼叫既有的類來實現,同時又避免類改動既有的類,一舉兩得~
當然,這是最簡單的adapter,還有許多比較複雜的,等我以後學習到類再來補充哈~
設計模式 之 Adapter
基礎幾何影象物件 如直線 矩形 是很容易實現的,但文字物件就比較複雜了,其中涉及到了文字格式 段落格式 螢幕更新 快取管理等諸多內容。如果此時正好有乙個成熟的文字繪製工具包可供使用,這個工具包中的textview物件提供了完整的文字格式 段落 螢幕及快取管理,實現了textshape物件需要實現的一...
設計模式之Adapter模式
adapter的意圖可以這樣表述 將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使原來由於介面不相容而不能一起工作的類可以一起工作。採用adapter模式是源於這樣的問題 原有系統的資料和行為都正確,但介面不符。通常用於必須從抽象類派生時。其實現方式是將原有類包含在另乙個類中 組合方...
玩轉設計模式之Adapter
玩轉設計模式之 adapter 設計模式很重要,地球人都知道。adapter 介面卡或者叫轉換器,這種模式主要用來將某乙個類的介面轉換成另外乙個類的介面。其實現起來也很簡單,就是新建乙個類,讓其實現所需要的介面,而其實現的過程是完全依賴於原需要被 adapt 的類的。這和我們現實生活中的各類介面卡非...