Java設計模式之適配器模式的實現(xiàn)
前言
適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結構型模式,它結合了兩個獨立接口的功能。
這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能。
適配器的實現(xiàn)方式
適配器可以繼承或依賴已有的對象,然后實現(xiàn)想要的目標接口。
示例
生活中有一個實例就是,筆記本上想要插內存卡就必須借助讀卡器,讀卡器就是筆記本usb接口和內部卡接口之間的適配器。
將內存卡插入讀卡器,再將讀卡器插入筆記本,就能實現(xiàn)用筆記本讀取內存卡了。
繼承實現(xiàn)
usb接口
public interface UsbInterface {
public void read();
}
內存卡類
public class MemoryCard {
public void readCard(){
System.out.println("讀取內存卡");
}
}
電腦類
public class Computer {
public void readCard(UsbInterface usb){
usb.read();
}
}
電腦依賴使用Usb接口,想要使用內存卡,就必須要有一個適配器讀卡器
讀卡器適配器類
public class CardReaderAdapter extends MemoryCard implements UsbInterface{
@Override
public void read() {
readCard();
}
}
這里使用的是繼承方式,繼承了內存卡類
客戶端類
public class Client {
public static void main(String[] args) {
Computer computer = new Computer();
computer.readCard(new CardReaderAdapter());
}
}
使用繼承暴露了所有被適配類的方法,增大了耦合性,建議使用有依賴聚合的方式
依賴實現(xiàn)
依賴實現(xiàn)的適配器
public class CardReaderAdapter implements UsbInterface {
private MemoryCard card;
CardReaderAdapter(MemoryCard card){
this.card = card;
}
@Override
public void read() {
card.readCard();
}
}
在Spring源碼中的使用
在Spring源碼中的轉化服務GenericConversionService就使用到了適配器模式


addConverter(GenericConverter converter)方法需要依賴使用GenericConverter類,但是只有Converter對象,這時就需要一個適配器進行適配。


可以看到ConverterAdapter適配器實現(xiàn)了GenericConverter接口,并且聚合了Converter對象。這里就使用到了適配器模式。
到此這篇關于Java設計模式之適配器模式的實現(xiàn)的文章就介紹到這了,更多相關Java適配器模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot使用AOP實現(xiàn)統(tǒng)計全局接口訪問次數(shù)詳解
這篇文章主要介紹了SpringBoot通過AOP實現(xiàn)對全局接口訪問次數(shù)的統(tǒng)計,文章從相關問題展開全文內容詳情,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
java利用easyexcel實現(xiàn)導入與導出功能
這篇文章主要介紹了java利用easyexcel實現(xiàn)導入與導出功能,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學習有所幫助2022-09-09
基于Rest的API解決方案(jersey與swagger集成)
下面小編就為大家?guī)硪黄赗est的API解決方案(jersey與swagger集成)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

