欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

適配器可以繼承或依賴(lài)已有的對(duì)象,然后實(shí)現(xiàn)想要的目標(biāo)接口。

示例

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

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

繼承實(shí)現(xiàn)

usb接口

public interface UsbInterface {
    public void read();
}

內(nèi)存卡類(lèi)

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

電腦類(lèi)

public class Computer {

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

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

讀卡器適配器類(lèi)

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

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

客戶(hù)端類(lèi)

public class Client {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.readCard(new CardReaderAdapter());
    }
}

使用繼承暴露了所有被適配類(lèi)的方法,增大了耦合性,建議使用有依賴(lài)聚合的方式

依賴(lài)實(shí)現(xiàn)

依賴(lài)實(shí)現(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)方法需要依賴(lài)使用GenericConverter類(lèi),但是只有Converter對(duì)象,這時(shí)就需要一個(gè)適配器進(jìn)行適配。

在這里插入圖片描述

在這里插入圖片描述

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

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

相關(guān)文章

最新評(píng)論