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

【設(shè)計(jì)模式】適配器模式(Adapter Pattern)

這篇具有很好參考價(jià)值的文章主要介紹了【設(shè)計(jì)模式】適配器模式(Adapter Pattern)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

23種設(shè)計(jì)模式之適配器模式(Adapter Pattern)

基本概念

適配器模式(Adapter Pattern)屬于結(jié)構(gòu)型設(shè)計(jì)模式,它的作用是將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)希望的另外一個(gè)接口。適配器讓原本由于接口不兼容而不能一起工作的類(lèi)可以協(xié)同工作。

結(jié)構(gòu)組成

配器模式包括三個(gè)角色:目標(biāo)抽象類(lèi)(Target)、適配器類(lèi)(Adapter)和被適配者類(lèi)(Adaptee)

  • 目標(biāo)抽象類(lèi)(Target):定義了客戶(hù)端使用的與特定領(lǐng)域相關(guān)的接口,也就是客戶(hù)端需要的方法。
  • 適配器類(lèi)(Adapter):通過(guò)繼承或者組合方式,將被適配者類(lèi)的接口與目標(biāo)抽象類(lèi)的接口轉(zhuǎn)換起來(lái),使得客戶(hù)端可以按照目標(biāo)抽象類(lèi)的接口進(jìn)行操作。
  • 被適配者類(lèi)(Adaptee):已經(jīng)存在的、功能穩(wěn)定的類(lèi),在這里指的是需要適配的類(lèi)。

兩種實(shí)現(xiàn)方式

  • 類(lèi)適配器模式:通過(guò)繼承來(lái)實(shí)現(xiàn)適配器功能;

  • 對(duì)象適配器模式:通過(guò)組合來(lái)實(shí)現(xiàn)適配器功能。

    適配器模式在實(shí)際開(kāi)發(fā)中非常常見(jiàn),比如我們經(jīng)常需要連接各種不同的數(shù)據(jù)庫(kù),每種數(shù)據(jù)庫(kù)都有自己獨(dú)特的接口和方法。
    如果我們希望寫(xiě)出一段通用的代碼,能夠連接到任何一種數(shù)據(jù)庫(kù)并執(zhí)行相同的操作,那么適配器模式就非常適合解決這個(gè)問(wèn)題。

小栗子

類(lèi)適配器模式

我們實(shí)現(xiàn)將220V電壓轉(zhuǎn)換成5V電壓的功能。

目標(biāo)接口

/**
 * @Classname Voltage5V
 * @Description TODO 目標(biāo)接口
 * @Date 2023/7/25 09:05
 * @Created by wangxianlin
 */
public interface Voltage5V {
    int output5V();
}

源接口

/**
 * @Classname Voltage220V
 * @Description TODO 源接口
 * @Date 2023/7/25 09:05
 * @Created by wangxianlin
 */
public class Voltage220V {
    public int output220V() {
        return 220;
    }
}

適配器類(lèi)

/**
 * @Classname VoltageAdapter
 * @Description TODO 適配器類(lèi)
 * @Date 2023/7/25 09:06
 * @Created by wangxianlin
 */
public class VoltageAdapter extends Voltage220V implements Voltage5V{

    @Override
    public int output5V() {
        int src = output220V();
        System.out.println("原始電壓:" + src + "V");
        int dst = src / 44; // 將220V電壓轉(zhuǎn)換成5V電壓
        System.out.println("轉(zhuǎn)換后電壓:" + dst + "V");
        return dst;
    }
}

客戶(hù)端代碼

/**
 * @Classname Client
 * @Description TODO 客戶(hù)端代碼
 * @Date 2023/7/25 09:06
 * @Created by wangxianlin
 */
public class Client {
    public static void main(String[] args) {
        Voltage5V adapter = new VoltageAdapter();
        int output5V = adapter.output5V();
        System.out.println("輸出電壓:" + output5V + "V");
    }
}
原始電壓:220V
轉(zhuǎn)換后電壓:5V
輸出電壓:5V

在上面的示例代碼中,我們首先定義了目標(biāo)接口Voltage5V和源接口Voltage220V,其中Voltage220V代表原始的220V電壓。

對(duì)象適配器模式

介紹:

  • (1)基本思路和類(lèi)的適配器模式相同,只是將Adapter類(lèi)作修改,不是繼承src而是持有src類(lèi)的實(shí)例,以解決兼容性的問(wèn)題。
  • (2)根據(jù) “合成復(fù)用原則” ,在系統(tǒng)中盡量使用關(guān)聯(lián)關(guān)系來(lái)替代繼承關(guān)系。

適配器類(lèi)

/**
 * @Classname VoltageAdapter
 * @Description TODO 對(duì)象適配器模式-適配器類(lèi)
 * @Date 2023/7/25 09:06
 * @Created by wangxianlin
 */
public class VoltageAdapterNew implements Voltage5V{

    private Voltage220V voltage220V;

    public VoltageAdapterNew(Voltage220V voltage220V) {
        super();
        this.voltage220V = voltage220V;
    }

    @Override
    public int output5V() {
        int src = voltage220V.output220V();
        System.out.println("原始電壓:" + src + "V");
        int dst = src / 44; // 將220V電壓轉(zhuǎn)換成5V電壓
        System.out.println("轉(zhuǎn)換后電壓:" + dst + "V");
        return dst;
    }
}

客戶(hù)端

/**
 * @Classname Client
 * @Description TODO 客戶(hù)端代碼
 * @Date 2023/7/25 09:06
 * @Created by wangxianlin
 */
public class Client {
  public static void main(String[] args) {
    Voltage5V adapter = new VoltageAdapterNew(new Voltage220V());
    int output5V = adapter.output5V();
    System.out.println("輸出電壓:" + output5V + "V");
  }
}

輸出結(jié)果文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-611439.html

原始電壓:220V
轉(zhuǎn)換后電壓:5V
輸出電壓:5V

到了這里,關(guān)于【設(shè)計(jì)模式】適配器模式(Adapter Pattern)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 設(shè)計(jì)模式-適配器模式 Adapter

    適配器設(shè)計(jì)模式(Adapter Design Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,用于 解決兩個(gè)不兼容接口之間的問(wèn)題 。適配器允許 將一個(gè)類(lèi)的接口轉(zhuǎn)換為客戶(hù)端期望的另一個(gè)接口,使得原本由于接口不兼容而不能一起工作的類(lèi)可以一起工作。 在適配器設(shè)計(jì)模式中,主要包含以下四個(gè)角色:

    2024年02月19日
    瀏覽(16)
  • 設(shè)計(jì)模式之適配器模式(Adapter)的C++實(shí)現(xiàn)

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

    在軟件功能開(kāi)發(fā)中,由于使用環(huán)境的改變,之前一些類(lèi)的舊接口放在新環(huán)境的功能模塊中不再適用。如何使舊接口能適用于新的環(huán)境?適配器可以解決此類(lèi)問(wèn)題。適配器模式:通過(guò)增加一個(gè)適配器類(lèi),在適配器接口中做一些適配操作,將舊模塊類(lèi)轉(zhuǎn)換成使用者Client類(lèi)期望的接

    2024年02月12日
    瀏覽(24)
  • 適配器模式(Adapter Pattern)

    適配器模式(Adapter Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,用于將一個(gè)類(lèi)的接口轉(zhuǎn)換為另一個(gè)類(lèi)的接口,以滿(mǎn)足客戶(hù)端的需求。 適配器模式的主要目的是使不兼容的接口能夠協(xié)同工作。它通過(guò)創(chuàng)建一個(gè)適配器類(lèi),該適配器類(lèi)包裝了現(xiàn)有類(lèi)的接口,使其與目標(biāo)接口相匹配。 適配器模

    2024年02月16日
    瀏覽(29)
  • 【設(shè)計(jì)模式——學(xué)習(xí)筆記】23種設(shè)計(jì)模式——適配器模式Adapter(原理講解+應(yīng)用場(chǎng)景介紹+案例介紹+Java代碼實(shí)現(xiàn))

    【設(shè)計(jì)模式——學(xué)習(xí)筆記】23種設(shè)計(jì)模式——適配器模式Adapter(原理講解+應(yīng)用場(chǎng)景介紹+案例介紹+Java代碼實(shí)現(xiàn))

    不同國(guó)家的插座不同,出國(guó)旅游充電器不能直接使用,可以通過(guò)使用 多功能轉(zhuǎn)換插頭 來(lái)輔助使用 適配器模式將某個(gè)類(lèi)的接口轉(zhuǎn)換成客戶(hù)端期望的另一個(gè)接口表示,主的目的是兼容性,讓原本因接口不匹配不能一起工作的兩個(gè)類(lèi)可以協(xié)同工作。其別名為包裝器(Wrapper) 適配器模

    2024年02月16日
    瀏覽(22)
  • 設(shè)計(jì)模式--適配器模式

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

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

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

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

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

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

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

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

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

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

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

    2024年02月12日
    瀏覽(32)
  • 設(shè)計(jì)模式四:適配器模式

    設(shè)計(jì)模式四:適配器模式

    1、適配器模式的理解 適配器模式可以理解為有兩個(gè)現(xiàn)成的類(lèi)Adaptee和Target,它們兩個(gè)是不能動(dòng)的,要求必須使用B這個(gè)類(lèi)來(lái)實(shí)現(xiàn)一個(gè)功能,但是A的內(nèi)容是能復(fù)用的,這個(gè)時(shí)候我們需要編寫(xiě)一個(gè)轉(zhuǎn)換器 適配器模式 Adaptee:被適配者,現(xiàn)有的接口或者類(lèi); Adapter:適配器類(lèi),適配器

    2024年02月22日
    瀏覽(24)
  • 設(shè)計(jì)模式 06 適配器模式

    適配器模式(Adapter Pattern)屬于 結(jié)構(gòu)型 模式 結(jié)構(gòu)型 模式關(guān)注如何將現(xiàn)有的類(lèi)或?qū)ο蠼M織在一起形成更加強(qiáng)大的結(jié)構(gòu)。 在生活中,我們經(jīng)常遇到這樣的一個(gè)問(wèn)題:輕薄筆記本通常只有 type-c 或者 usb-a 接口,沒(méi)有網(wǎng)口。但日常使用中是往往需要連接網(wǎng)口上網(wǎng)的,這時(shí)想到的第

    2024年02月11日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包