java 設(shè)計模式之適配器模式的詳解
java 設(shè)計模式之適配器模式的詳解
前言:
適配器模式(Adapter Pattern)又叫做變壓器模式,也叫做包裝模式。包裝模式還包括裝飾模式。
在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。
一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。
UML類圖:

具體代碼:
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Adapter adapter = new Adapter(adaptee);
adapter.request();
}
}
public interface Target {
void request();
}
public class Adaptee {
void adapteeRequest() {
System.out.println("本類");
}
}
public class Adapter implements Target {
Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
private Adaptee adaptee;
@Override
public void request() {
System.out.println("適配類");
adaptee.adapteeRequest();
}
}
舉例說明:
此模式日常的例子,最常見的就是各種各樣的轉(zhuǎn)接口,Mac本連投影儀,一般都是需要轉(zhuǎn)接口轉(zhuǎn)接一下的,這就是適配器模式。
在實際開發(fā)的例子中,現(xiàn)在系統(tǒng)都是迭代開發(fā)的,一步步累計,出現(xiàn)的情況就是,同樣的功能可能有兩個或多個不同的接口,
有的需要調(diào)用之前的,有的調(diào)用后來的,都亂掉了,那就需要加一層適配器,把兩個新舊的兼容起來。
適用場景:
你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求。
你想創(chuàng)建一個可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類(即那些接口可能不一定兼容的類)協(xié)同工作。
你想使用一些已經(jīng)存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口
優(yōu)缺點:
優(yōu)點:
更好的復(fù)用性和擴展性
缺點:
很多的適配器結(jié)合起來,會使系統(tǒng)過于過亂,不容易把握。
總結(jié):適配器模式相對簡單,總結(jié)起來就是兩個字“兼容”,這就是這種模式的精髓,當(dāng)然系統(tǒng)不需要兼容更好。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Spring Boot學(xué)習(xí)入門之AOP處理請求詳解
AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù),下面這篇文章主要給大家介紹了關(guān)于Spring Boot學(xué)習(xí)入門之AOP處理請求的相關(guān)資料,需要的朋友可以參考下。2017-09-09
經(jīng)典的Java面試題及回答集錦(基礎(chǔ)篇)
本文給大家收藏整理了java面試題及回答,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2018-03-03
快速解決commons-fileupload組件無法處理自定義head信息的bug
問題在于fileupload組件解析完自定義的head節(jié)點后,卻忘記傳遞到FileItemStreamImpl中了,稍作修訂,即可修正該bug2013-08-08

