国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口

這篇具有很好參考價值的文章主要介紹了適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口

什么是適配器模式?

適配器模式是一種結(jié)構(gòu)型設(shè)計模式,用于將一個類的接口轉(zhuǎn)換為客戶端所期望的另一個接口。它允許不兼容的類能夠合作,使得原本由于接口不匹配而無法工作的類能夠一起工作。

適配器模式通過創(chuàng)建一個適配器類,將原本不兼容的接口轉(zhuǎn)換為目標接口,從而使得客戶端能夠使用目標接口來調(diào)用適配器類。適配器類實現(xiàn)了目標接口,并在內(nèi)部持有一個原本不兼容的類的實例,通過適配器類的方法來調(diào)用原本不兼容類的方法。

優(yōu)缺點

優(yōu)點

  1. 兼容性:適配器模式可以解決不同類之間接口不兼容的問題,使得原本無法合作的類能夠一起工作。
  2. 復(fù)用性:適配器模式可以復(fù)用已有的類,通過適配器類來使用這些類,而無需修改原有代碼。
  3. 靈活性:適配器模式可以在不修改原有代碼的情況下,通過適配器類來擴展功能或修改行為。

缺點過多地使用適配器,會讓系統(tǒng)非常零亂,不易整體進行把握。比如,明明看到調(diào)用的是 A 接口,其實內(nèi)部被適配成了 B 接口的實現(xiàn),一個系統(tǒng)如果太多出現(xiàn)這種情況,無異于一場災(zāi)難。因此如果不是很有必要,可以不使用適配器,而是直接對系統(tǒng)進行重構(gòu)。

示例

假設(shè)我們要給手機充電,該手機充電的電壓只支持4v,現(xiàn)在電源電壓是220v,為了能夠給手機充電,我們可以使用適配器模式,將電壓轉(zhuǎn)為為4v。
適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口,設(shè)計模式精華版,適配器模式,設(shè)計模式,java

目標類:手機

public class Phone {
    // 充電
    public void chargin(IVoltage5V iVoltage5V) {
        if (iVoltage5V.output5V() == 5) {
            System.out.println("電壓為5V,可以充電~");
        } else if (iVoltage5V.output5V() > 5) {
            System.out.println("電壓大于5V,不能充電");
        }
    }
}

原本不兼容的類:220V電源插座

// 被適配器類
public class Voltage220V {
    public int output220V() {
        int src = 220;
        System.out.println("電壓=220V");
        return src;
    }
}

適配器接口

public interface IVoltage5V {
    public int output5V();
}

適配器類:220V電源適配器

// 適配器類
public class VotageAdapter extends Voltage220V implements IVoltage5V{
    @Override
    public int output5V() {
        int srcV = output220V(); // 獲取220V電壓
        int dstV = srcV / 44; // 轉(zhuǎn)成5V電壓
        return dstV;
    }
}

客戶端代碼

public class Client {
    public static void main(String[] args) {
        System.out.println("-------使用類適配器------------");
        Phone phone = new Phone();
        phone.chargin(new VotageAdapter());
    }
}

適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口,設(shè)計模式精華版,適配器模式,設(shè)計模式,java

源碼分析

Java IO中,InputStreamReaderOutputStreamWriter 就是兩個適配器(Adapter),它們兩個是字節(jié)流和字符流之間的橋梁。InputStreamReader 使用 StreamDecoder (流解碼器)對字節(jié)進行解碼,實現(xiàn)字節(jié)流到字符流的轉(zhuǎn)換, OutputStreamWriter 使用StreamEncoder(流編碼器)對字符進行編碼,實現(xiàn)字符流到字節(jié)流的轉(zhuǎn)換。

// InputStreamReader 是適配器,F(xiàn)ileInputStream 是被適配的類
InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "UTF-8");

InputStreamReader部分源碼:

public class InputStreamReader extends Reader {
	//用于解碼的對象
	private final StreamDecoder sd;
    public InputStreamReader(InputStream in) {
        super(in);
        try {
            // 獲取 StreamDecoder 對象
            sd = StreamDecoder.forInputStreamReader(in, this, (String)null);
        } catch (UnsupportedEncodingException e) {
            throw new Error(e);
        }
    }
    // 使用 StreamDecoder 對象做具體的讀取工作
	public int read() throws IOException {
        return sd.read();
    }
}

總結(jié)

適配器模式是一種非常有用的設(shè)計模式,它可以解決不兼容的接口問題,使得原本無法合作的類能夠一起工作。通過創(chuàng)建一個適配器類,將原本不兼容的接口轉(zhuǎn)換為目標接口,適配器模式提供了一種靈活、可復(fù)用的方式來擴展功能或修改行為。在實際開發(fā)中,適配器模式經(jīng)常被用于集成不同系統(tǒng)或庫之間的接口,以實現(xiàn)系統(tǒng)的互操作性和可擴展性。文章來源地址http://www.zghlxwxcb.cn/news/detail-646452.html

到了這里,關(guān)于適配器模式:將不兼容的接口轉(zhuǎn)換為可兼容的接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • .NET高級面試指南專題二十六【適配器模式介紹,用于將一個類的接口轉(zhuǎn)換成客戶端所期待的另一個接口】

    適配器模式是一種結(jié)構(gòu)型設(shè)計模式,用于將一個類的接口轉(zhuǎn)換成客戶端所期待的另一個接口,使得原本由于接口不兼容而不能在一起工作的類能夠協(xié)同工作。這種模式通常用于軟件系統(tǒng)的升級和重構(gòu)中,可以使得原有的代碼能夠與新的接口相兼容,同時不改變原有代碼的情況

    2024年04月22日
    瀏覽(26)
  • 適配器模式:代理、適配器、橋接、裝飾,這四個模式有何區(qū)別?

    ????????關(guān)于適配器模式,今天我們主要學(xué)習(xí)它的兩種實現(xiàn)方式,類適配器和對象適配器,以及5種常見的應(yīng)用場景。同時,我還會通過剖析slf4j日志框架,來給你展示這個模式在真實項目中的應(yīng)用。除此之外,在文章的最后,我還對代理、橋接、裝飾器、適配器,這4種代

    2024年02月13日
    瀏覽(19)
  • IP-Adapter:文本兼容圖像提示適配器,用于文本到圖像擴散模型

    IP-Adapter:文本兼容圖像提示適配器,用于文本到圖像擴散模型

    IP-Adapter這是一種有效且輕量級的適配器,用于實現(xiàn)預(yù)訓(xùn)練文本到圖像擴散模型的圖像提示功能。只有 22M 參數(shù)的 IP 適配器可以實現(xiàn)與微調(diào)圖像提示模型相當(dāng)甚至更好的性能。IP-Adapter 不僅可以推廣到從同一基本模型微調(diào)的其他自定義模型,還可以推廣到使用現(xiàn)有可控工具的可

    2024年01月18日
    瀏覽(24)
  • IP-Adapter:用于文本到圖像擴散模型的文本兼容圖像提示適配器

    IP-Adapter:用于文本到圖像擴散模型的文本兼容圖像提示適配器

    IP-Adapter是圖像提示適配器,用于預(yù)訓(xùn)練的文本到圖像擴散模型,以實現(xiàn)使用圖像提示生成圖像的能力; IP-Adapter的關(guān)鍵設(shè)計是解耦的交叉注意力機制,將交叉注意力層分離為文本特征和圖像特征,實現(xiàn)了圖像提示的能力。 img2img使用unet架構(gòu),包括一個編碼器(下采樣)和一個

    2024年02月01日
    瀏覽(32)
  • 設(shè)計模式--適配器模式

    設(shè)計模式--適配器模式

    目錄 基本介紹 工作原理 類適配模式 介紹 應(yīng)用實例介紹 類適配器模式注意事項和細節(jié) 對象適配模式 介紹 對象適配器模式注意事項和細節(jié) 接口適配器模式 介紹 適配器模式的注意事項和細節(jié) ?(1) 適配器模式(Adapter Pattern) 將某個類的接口轉(zhuǎn)換成客戶端期望的另一個接口表示

    2023年04月26日
    瀏覽(19)
  • 設(shè)計模式——適配器模式

    設(shè)計模式——適配器模式

    說起適配器其實在我們的生活中是非常常見的,比如:學(xué)校的宿舍的電壓都比較低,而有的學(xué)生想使用大功率電器,宿舍的就會跳閘,然而如果你使用一個適配器(變壓器)就可以使用了(溫馨提示宿舍使用大功率電器不太安全,容易引起火災(zāi),希望大家謹慎使用)。 又比如

    2024年02月12日
    瀏覽(35)
  • 設(shè)計模式-適配器模式

    設(shè)計模式-適配器模式

    在我們生活中,插座輸出的電源都是220V的,而我們手機充電需要的電壓基本都是5V的。我們不能直接用220V的電壓來給手機充電,也不能說專門有線路來提供5V的電壓。所以就有了充電器,充電器可以將220V的電壓轉(zhuǎn)為5V的電壓,這樣我們就方便太多了。 上面所說的充電器其實就

    2024年02月08日
    瀏覽(34)
  • 【設(shè)計模式】適配器模式

    【設(shè)計模式】適配器模式

    適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個獨立接口的功能。 這種模式涉及到一個單一的類,該類負責(zé)加入獨立的或不兼容的接口功能。舉個真實的例子,讀卡器是作為內(nèi)存卡和筆記本之間的適配器。

    2024年02月12日
    瀏覽(32)
  • 【AIGC】IP-Adapter:文本兼容圖像提示適配器,用于文本到圖像擴散模型

    【AIGC】IP-Adapter:文本兼容圖像提示適配器,用于文本到圖像擴散模型

    ????????IPAdapter能夠通過圖像給Stable Diffusion模型以內(nèi)容提示,讓其生成參考該圖像畫風(fēng),可以免去Lora的訓(xùn)練,達到參考畫風(fēng)人物的生成效果。 ????????通過文本提示詞生成的圖像,往往需要設(shè)置復(fù)雜的提示詞,通常設(shè)計提示詞變得很復(fù)雜。文本提示可以由圖像來替代

    2024年01月16日
    瀏覽(24)
  • 結(jié)構(gòu)型模式-適配器模式

    是作為兩個不兼容的接口之間的橋梁。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個獨立接口的功能。 意圖: 將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 主要解決: 主要解決在軟件系

    2024年02月10日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包