0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是適配器模式?怎樣使用適配器模式進(jìn)行貨幣轉(zhuǎn)換?

冬至子 ? 來源:攻城獅奶爸雜貨鋪 ? 作者:ChatGPT ? 2023-07-19 14:35 ? 次閱讀

在軟件開發(fā)中,通常使用具有不兼容接口的現(xiàn)有代碼或外部庫。 適配器模式提供了一個優(yōu)雅的解決方案,充當(dāng)不兼容接口之間的橋梁,無需修改現(xiàn)有代碼即可實現(xiàn)無縫集成。 在這篇博文中,我們將深入研究 Python 中的適配器模式,并通過實際示例探索其實現(xiàn)。

什么是適配器模式?

適配器模式是一種結(jié)構(gòu)設(shè)計模式,允許具有不兼容接口的對象通過提供通用接口來進(jìn)行協(xié)作。 它充當(dāng)適配器或橋梁,將請求從一個接口轉(zhuǎn)換到另一個接口。 通過使用適配器,我們可以使不同的接口協(xié)同工作,而無需修改其底層實現(xiàn)。

適配器模式的關(guān)鍵組成部分:

  1. Target:定義客戶端代碼期望與之交互的接口。
  2. Adapter:實現(xiàn)Target接口并包裝Adaptee對象。 它將來自目標(biāo)接口的請求轉(zhuǎn)換為適應(yīng)者接口。

3、Adaptee:代表現(xiàn)有的或不兼容的接口,需要與Target接口集成。

使用適配器模式的好處包括:

  1. 無縫集成:適配器模式通過提供通用接口來集成現(xiàn)有或不兼容的代碼,從而避免大量修改。
  2. 代碼復(fù)用:適配器可以在不同場景下復(fù)用,實現(xiàn)多個接口的高效集成。
  3. 松散耦合:適配器模式促進(jìn)了組件之間的松散耦合,因為客戶端代碼與目標(biāo)接口交互而無需了解底層實現(xiàn)細(xì)節(jié)。

演示:使用適配器模式進(jìn)行貨幣轉(zhuǎn)換

讓我們深入研究一個示例以更好地理解適配器模式。 想象一下一個應(yīng)用程序需要使用不同的貨幣匯率 API 來轉(zhuǎn)換貨幣。 我們將創(chuàng)建一個CurrencyConverter 類作為Target,一個APIAdapter 類作為Adapter,并創(chuàng)建外部貨幣匯率API 作為Adaptee。

class CurrencyConverter:


    def convert(self, amount):


        raise NotImplementedError


class APIAdapter(CurrencyConverter):


    def __init__(self, adaptee):


        self.adaptee = adaptee


    def convert(self, amount):


        rate = self.adaptee.get_exchange_rate()


        converted_amount = amount * rate


        return converted_amount


class ExternalAPI:


    def get_exchange_rate(self):


        # Make API call and retrieve the exchange rate


        rate = 1.5  # Sample value


        return rate

在此示例中,CurrencyConverter 類表示客戶端代碼與之交互的 Target 接口。 APIAdapter 類充當(dāng)適配器,實現(xiàn)CurrencyConverter 接口并包裝ExternalAPI 對象。 ExternalAPI 類表示提供貨幣匯率的現(xiàn)有或不兼容的接口。

現(xiàn)在,讓我們看看如何使用CurrencyConverter和適配器:

api = ExternalAPI()


adapter = APIAdapter(api)


amount = 100


converted_amount = adapter.convert(amount)


print(converted_amount)


# Output: 150.0 (assuming the exchange rate is 1.5)

通過利用適配器模式,我們將外部貨幣匯率與我們的CurrencyConverter類無縫集成,從而無需修改現(xiàn)有代碼即可進(jìn)行貨幣轉(zhuǎn)換。

適配器模式充當(dāng)不兼容接口之間的橋梁,實現(xiàn)不同組件之間的無縫集成和協(xié)作。 通過用適配器包裝不兼容的接口,我們在不修改底層實現(xiàn)的情況下實現(xiàn)了統(tǒng)一兼容的接口。

在這篇博文中,我們探討了 Python 中適配器模式的基礎(chǔ)知識,并通過貨幣轉(zhuǎn)換示例演示了其實現(xiàn)。 然而,適配器模式的適用性遠(yuǎn)遠(yuǎn)超出了API集成,可以用于涉及接口兼容性挑戰(zhàn)的各種場景。

請記住,設(shè)計模式是幫助軟件設(shè)計的寶貴工具,它們的使用應(yīng)基于您的特定集成要求。在項目中充分了解適配器模式后,您將能夠簡化不兼容接口的集成。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 適配器
    +關(guān)注

    關(guān)注

    9

    文章

    2043

    瀏覽量

    69424
  • 耦合器
    +關(guān)注

    關(guān)注

    8

    文章

    734

    瀏覽量

    60770
  • API接口
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    10815
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    適配器模式和代理模式的區(qū)別

    對象可以在客戶端和目標(biāo)對象之間起到中介的作用,這樣起到了中介的作用和保護(hù)了目標(biāo)對象的作用?! 。?)高擴(kuò)展性    適配器模式  在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝
    發(fā)表于 10-22 15:17

    適配器模式實現(xiàn)

    目錄第一章 適配器模式介紹第二章 適配器模式實現(xiàn)(類適配器)2.1、關(guān)系依賴圖2.2、創(chuàng)建交流電2.3、定義直流電2.4、創(chuàng)建充電器2.5、
    發(fā)表于 09-15 07:11

    適配器模式的作用

    適配器模式的作用是解決兩個軟件實體間的接口不兼容的問題。使用適配器模式之后,原本由于接口不兼容而不能工作的兩個軟件實體可以一起工作。港式插頭轉(zhuǎn)換
    發(fā)表于 11-11 06:30

    缺省適配器模式基本概念

    就可以有選擇的覆蓋父類的某些方法實現(xiàn)需求,它適用于一個接口不想使用所有的方法的情況。在java8后,接口中可以有default方法,就不需要這種缺省適配器模式了。接口中方法都設(shè)置為default,實現(xiàn)為空,這樣同樣同樣可以達(dá)到缺省適配器
    發(fā)表于 11-11 07:53

    對象適配器模式基本概念

    實例的方法。1.2 類圖如上圖,與類適配器模式不同的是,Adapter只實現(xiàn)了Target的接口,沒有繼承Adaptee,而是使用聚合的方式引用adaptee。二、電壓轉(zhuǎn)換例子說明2.1 需求一張圖說明需求:嗯,就是電源
    發(fā)表于 11-11 07:09

    什么是硬件適配器模式

    硬件適配器模式提供一種方法,使已經(jīng)存在的硬件接口能適應(yīng)應(yīng)用期望。當(dāng)應(yīng)用需要使用一個接口而硬件提供另一種時,硬件適配器模式創(chuàng)建元素在兩個接口之間進(jìn)行
    發(fā)表于 12-21 07:55

    適配器模式、裝飾器模式、代理模式的區(qū)別

    適配器模式、裝飾器模式、代理模式都屬于設(shè)計模式中的結(jié)構(gòu)型模式,結(jié)構(gòu)型設(shè)計
    發(fā)表于 10-18 15:53 ?1.7w次閱讀
    <b class='flag-5'>適配器</b><b class='flag-5'>模式</b>、裝飾器<b class='flag-5'>模式</b>、代理<b class='flag-5'>模式</b>的區(qū)別

    適配器模式和代理模式的區(qū)別

    適配器模式適配器模式有時候也稱包裝樣式或者包裝。將一個類的接口轉(zhuǎn)接成用戶所期待的。代理模式:為其他對象提供一種代理以控制對這個對象的訪問。
    發(fā)表于 01-12 11:56 ?5380次閱讀
    <b class='flag-5'>適配器</b><b class='flag-5'>模式</b>和代理<b class='flag-5'>模式</b>的區(qū)別

    java適配器模式實例

    java適配器模式將一個類的接口轉(zhuǎn)換成客戶想要的另一個接口,適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
    發(fā)表于 01-15 11:00 ?3914次閱讀

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

    適配器模式的作用是解決兩個軟件實體間的接口不兼容的問題。使用適配器模式之后,原本由于接口不兼容而不能工作的兩個軟件實體可以一起工作。港式插頭轉(zhuǎn)換
    發(fā)表于 11-06 16:21 ?5次下載
    JavaScript設(shè)計<b class='flag-5'>模式</b>之<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>

    大話設(shè)計模式之愛你一萬年:第六章 結(jié)構(gòu)型模式適配器模式:i7愛妻:為愛找份工作:3.適配器模式之對象適配器

    實例的方法。1.2 類圖如上圖,與類適配器模式不同的是,Adapter只實現(xiàn)了Target的接口,沒有繼承Adaptee,而是使用聚合的方式引用adaptee。二、電壓轉(zhuǎn)換例子說明2.1 需求一張圖說明需求:嗯,就是電源
    發(fā)表于 11-06 19:51 ?12次下載
    大話設(shè)計<b class='flag-5'>模式</b>之愛你一萬年:第六章 結(jié)構(gòu)型<b class='flag-5'>模式</b>:<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>:i7愛妻:為愛找份工作:3.<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>之對象<b class='flag-5'>適配器</b>

    設(shè)計模式-適配器模式-以電壓適配器為例

    超級鏈接: Java常用設(shè)計模式的實例學(xué)習(xí)系列-緒論參考:《HeadFirst設(shè)計模式》1.關(guān)于適配器模式適配器
    發(fā)表于 11-07 09:36 ?17次下載
    設(shè)計<b class='flag-5'>模式</b>-<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>-以電壓<b class='flag-5'>適配器</b>為例

    設(shè)計模式中什么是適配器模式?

    適配器模式(Adapter),將一個類的接口適配成用戶所期待的。
    的頭像 發(fā)表于 08-02 10:00 ?1082次閱讀
    設(shè)計<b class='flag-5'>模式</b>中什么是<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>?

    適配器是什么?適配器模式有幾種常見的類型?

    適配器是什么?適配器模式有幾種常見的類型? 適配器是一個接口轉(zhuǎn)換器,它可以是一個獨立的硬件接口設(shè)備,允許硬件或電子接口與其它硬件或電子接口相
    的頭像 發(fā)表于 12-11 11:26 ?2170次閱讀

    什么是電源適配器轉(zhuǎn)換效率?轉(zhuǎn)換效率對電源適配器有何影響?

    什么是電源適配器轉(zhuǎn)換效率?轉(zhuǎn)換效率對電源適配器有何影響?如何提高電源適配器轉(zhuǎn)換效率? 電源
    的頭像 發(fā)表于 01-30 16:46 ?2228次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品