1、使用場景
介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面。以消除由於介面的不匹配所造成類的相容性問題。介面卡模式主要有類的介面卡模式、物件的介面卡模式兩種。
2、兩種介面卡模式介紹
模式所涉及的角色有:
目標(target)角色:這就是所期待得到的介面。
源(adapee)角色:現在需要適配的介面。
介面卡(adaper)角色:介面卡類是本模式的核心。介面卡把源介面轉換成目標介面。(充當中間角色)
1)類的介面卡模式
類的介面卡模式把適配的類(即源類)的api轉換成為目標類的api。
由於是類介面卡模式,因此目標不可以是類,介面卡不可以是介面而必須是類。
public
inte***ce target
介面卡角色adapter
擴充套件了source,同時又實現了目標
(target)
介面。由於source沒有提供sampleoperation2()
方法,而目標介面又要求這個方法,因此介面卡角色
adapter
實現了這個方法。
public
class adapter extends source implements target {
/** * 由於源類
source 沒有方法sampleoperation2()
* 因此介面卡補充上這個方法
*/ @override
public
void sampleoperation2() {
//寫相關的**
2)物件的介面卡模式
與類的介面卡模式一樣,物件的介面卡模式把被適配的類的api
轉換成為目標類的
api,但物件的介面卡模式不是使用繼承關係連線到source類,而是使用委派關係連線到source類。
public
class adapter implements target{
private source source;
public adapter(source source){
this.source = source;
/** * 源類
source
有方法sampleoperation1
* 因此介面卡類直接委派即可
*/ public
void sampleoperation1(){
this.source.sampleoperation1();
/** * 源類
source
沒有方法
sampleoperation2
* 因此由介面卡類需要補充此方法
*/ public
void sampleoperation2(){
//寫相關的**
類adapter
。這個包裝類包裝了乙個source的例項,從而此包裝類能夠把source的api
與target
類的api
銜接起來。
adapter
與source是委派關係,這決定了介面卡模式是物件的。
JAVA設計模式之介面卡模式
先總結一下整個過程的感想 感覺在網上找了很多資料,大部分大牛們把這個設計模式解釋的很仔細,但是用詞實在過於專業,很難讓初學者讀懂,自己找了乙個比較恰當的例子寫了一遍,對這個設計模式有了一定的認識,希望這種解釋可以得到認可。其實總結一下介面卡模式的最終目的 在乙個沒有實現某個介面的類,想在這個介面中規...
Java設計模式之介面卡模式
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...
Java設計模式之介面卡模式
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...