介面卡模式(有時候也稱包裝樣式或者包裝)定義:
將乙個類的介面適配成使用者所期待的。乙個適配允許通常因為介面不相容而不能在一起工作的類工作在一起,做法是將類自己的介面包裹在乙個已存在的類中。
將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 ——gang of four
/**
* 原功能base
*@author suk1m
* 2017.07.24
*/public
class
cbasesing
}
/**
* 目標功能
*@author suk1m
* 2017.07.24
*/public
inte***ce
targetsing
/**
* 靜態介面卡
*@author suk1m
* 2017.07.24
*/public
class
sadapterclass
extends
cbasesing
implements
targetsing
@override
public
void
sing1()
@override
public
void
sing2()
@override
public
void
sing3()
}
public
class
testdemo
}
結果如下:
* 原功能
*@author suk1m
* 2017.07.25
*/public
inte***ce
ibasesing
/** * 原功能實現類
*@author suk1m
* 2017.07.25
*/public
class
ibasesingimpl
implements
ibasesing
}
/**
* 目標功能
*@author suk1m
* 2017.07.24
*/public
inte***ce
targetsing
/**
* 動態介面卡
*@author suk1m
* 2017.07.24
*/public
class
adapterclass
implements
targetsing
@override
public
void
sing1()
@override
public
void
sing2()
@override
public
void
sing3()
}
/**
* 動態適配測試方法
*@param args
*/public
static
void
main(string args)
測試結果如下:
基本概念
客戶:需要呼叫我們的**的物件。
adapter模式的宗旨:保留現有類所提供的服務,向客戶提供介面,以滿足客戶的期望。
主要內容
(1)類介面卡:
當客戶在介面中定義了他期望的行為時,我們就可以應用介面卡模式,提供乙個實現該介面的類,並且擴充套件已有的類,通過建立子類來實現適配。
使用的前提:
1.介面中規定了所有要實現的方法
2.但乙個要實現此介面的具體類,只用到了其中的幾個方法,而其它的方法都是沒有用的。
實現方法
1.用乙個抽象類實現已有的介面,並實現介面中所規定的所有方法,這些方法的實現可以都是「平庸」實現—-空方法;但此類中的方法是具體的方法,而不是抽象方法,否則的話,在具體的子類中仍要實現所有的方法,這就失去了介面卡本來的作用。
2.原本要實現介面的子類,只實現1中的抽象類即可,並在其內部實現時,只對其感興趣的方法進行實現。
注意事項
1.充當介面卡角色的類就是:實現已有介面的抽象類
2.為什麼要用抽象類:
此類是不要被例項化的。而只充當介面卡的角色,也就為其子類提供了乙個共同的介面,但其子類又可以將精力只集中在其感興趣的地方。
JAVA設計模式之介面卡模式
先總結一下整個過程的感想 感覺在網上找了很多資料,大部分大牛們把這個設計模式解釋的很仔細,但是用詞實在過於專業,很難讓初學者讀懂,自己找了乙個比較恰當的例子寫了一遍,對這個設計模式有了一定的認識,希望這種解釋可以得到認可。其實總結一下介面卡模式的最終目的 在乙個沒有實現某個介面的類,想在這個介面中規...
Java設計模式之介面卡模式
1 使用場景 介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面。以消除由於介面的不匹配所造成類的相容性問題。介面卡模式主要有類的介面卡模式 物件的介面卡模式兩種。2 兩種介面卡模式介紹 模式所涉及的角色有 目標 target 角色 這就是所期待得到的介面。源 adapee 角色 現在需要適配的...
Java設計模式之介面卡模式
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。介面卡模式有兩種 類介面卡和物件介面卡 二者在實現上有些許區別,作用一樣。1 類介面卡模式 原理 通過繼承來實現介面卡功能。當我們要訪問的介面a中沒有我們想要的方法...