亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java設(shè)計模式之適配器模式的實現(xiàn)

 更新時間:2023年11月30日 09:58:25   作者:啊幾  
這篇文章主要介紹了Java設(shè)計模式之適配器模式的實現(xiàn),適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁,這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個獨立接口的功能,需要的朋友可以參考下

前言

適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個獨立接口的功能。

這種模式涉及到一個單一的類,該類負責(zé)加入獨立的或不兼容的接口功能。

適配器的實現(xiàn)方式

適配器可以繼承或依賴已有的對象,然后實現(xiàn)想要的目標接口。

示例

生活中有一個實例就是,筆記本上想要插內(nèi)存卡就必須借助讀卡器,讀卡器就是筆記本usb接口和內(nèi)部卡接口之間的適配器。

將內(nèi)存卡插入讀卡器,再將讀卡器插入筆記本,就能實現(xiàn)用筆記本讀取內(nèi)存卡了。

繼承實現(xiàn)

usb接口

public interface UsbInterface {
    public void read();
}

內(nèi)存卡類

public class MemoryCard {
    public void readCard(){
        System.out.println("讀取內(nèi)存卡");
    }
}

電腦類

public class Computer {

    public void readCard(UsbInterface usb){
        usb.read();
    }
}

電腦依賴使用Usb接口,想要使用內(nèi)存卡,就必須要有一個適配器讀卡器

讀卡器適配器類

public class CardReaderAdapter extends MemoryCard implements UsbInterface{
    @Override
    public void read() {
        readCard();
    }
}

這里使用的是繼承方式,繼承了內(nèi)存卡類

客戶端類

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源碼中的轉(zhuǎn)化服務(wù)GenericConversionService就使用到了適配器模式

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

可以看到ConverterAdapter適配器實現(xiàn)了GenericConverter接口,并且聚合了Converter對象。這里就使用到了適配器模式。

到此這篇關(guān)于Java設(shè)計模式之適配器模式的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java適配器模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動

    如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動

    這篇文章主要介紹了如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動,對于一些想要一直運行的Java文件,就會造成每次系統(tǒng)更新之后的重啟導(dǎo)致Java文件無法繼續(xù)運行。,需要的朋友可以參考下
    2019-06-06
  • SpringBoot使用AOP實現(xiàn)統(tǒng)計全局接口訪問次數(shù)詳解

    SpringBoot使用AOP實現(xiàn)統(tǒng)計全局接口訪問次數(shù)詳解

    這篇文章主要介紹了SpringBoot通過AOP實現(xiàn)對全局接口訪問次數(shù)的統(tǒng)計,文章從相關(guān)問題展開全文內(nèi)容詳情,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度

    Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度

    這篇文章主要介紹了Spring 中使用Quartz實現(xiàn)任務(wù)調(diào)度,Spring中使用Quartz 有兩種方式,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • springboot自定義日志注解的實現(xiàn)

    springboot自定義日志注解的實現(xiàn)

    本文主要介紹了springboot自定義日志注解的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • MybatisPlus使用代碼生成器遇到的小問題(推薦)

    MybatisPlus使用代碼生成器遇到的小問題(推薦)

    這篇文章主要介紹了MybatisPlus使用代碼生成器遇到的小問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 關(guān)于maven本地倉庫的配置方式

    關(guān)于maven本地倉庫的配置方式

    這篇文章主要介紹了關(guān)于maven本地倉庫的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java利用easyexcel實現(xiàn)導(dǎo)入與導(dǎo)出功能

    java利用easyexcel實現(xiàn)導(dǎo)入與導(dǎo)出功能

    這篇文章主要介紹了java利用easyexcel實現(xiàn)導(dǎo)入與導(dǎo)出功能,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-09-09
  • java中阻塞隊列和非阻塞隊列的實現(xiàn)

    java中阻塞隊列和非阻塞隊列的實現(xiàn)

    在Java并發(fā)編程中,阻塞隊列和非阻塞隊列是兩種主要的隊列類型,分別適用于不同的場景,了解這兩種隊列的特點和工作機制,可以幫助開發(fā)者更好地選擇合適的數(shù)據(jù)結(jié)構(gòu)解決并發(fā)問題
    2024-10-10
  • java模擬實現(xiàn)斗地主發(fā)牌小程序

    java模擬實現(xiàn)斗地主發(fā)牌小程序

    這篇文章主要為大家詳細介紹了java模擬實現(xiàn)斗地主發(fā)牌小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 基于Rest的API解決方案(jersey與swagger集成)

    基于Rest的API解決方案(jersey與swagger集成)

    下面小編就為大家?guī)硪黄赗est的API解決方案(jersey與swagger集成)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論