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

【設(shè)計模式】適配器和橋接器模式有什么區(qū)別?

這篇具有很好參考價值的文章主要介紹了【設(shè)計模式】適配器和橋接器模式有什么區(qū)別?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

今天我探討一下適配器模式和橋接模式,這兩種模式往往容易被混淆,我們希望通過比較他們的區(qū)別和聯(lián)系,能夠讓大家有更清晰的認(rèn)識。

適配器模式:連接不兼容接口

當(dāng)你有一個類的接口不兼容你的系統(tǒng),而你又不希望修改這個類的源代碼時,適配器模式就能派上用場。適配器模式作用在已有組件的接口層面,使之能夠滿足客戶端的期望接口。

【設(shè)計模式】適配器和橋接器模式有什么區(qū)別?,設(shè)計模式,設(shè)計模式,開發(fā)語言,外觀模式,java,c++

例如,你有一臺彩色打印機,但是你的圖形處理系統(tǒng)只支持黑白打印機:

// 你的圖形處理系統(tǒng)只能接受這個接口
interface BlackWhitePrinter {
    void printBlackWhite();
}

// 但是你有的是彩色打印機:
class ColorPrinter {
    void printColor() {
        System.out.println("Printing Color");
    }
}

// 適配器模式就派上用場了
class PrinterAdapter implements BlackWhitePrinter {
    private final ColorPrinter colorPrinter;

    public PrinterAdapter(ColorPrinter colorPrinter) {
        this.colorPrinter = colorPrinter;
    }
    @Override
    public void printBlackWhite() {
        colorPrinter.printColor();
    }
}
橋接模式:劃分接口和實現(xiàn)

橋接模式通過將抽象和實現(xiàn)解耦,使得兩者可以獨立進行變化。它的主要目標(biāo)是避免當(dāng)修改實現(xiàn)時,需要同時修改接口。

【設(shè)計模式】適配器和橋接器模式有什么區(qū)別?,設(shè)計模式,設(shè)計模式,開發(fā)語言,外觀模式,java,c++

比如我們有一個圖形API,定義有多種形狀,比如矩形、圓形等。同時,每種形狀都可能有多種繪制方式,比如OpenGL、Vulkan。如果不采用橋接模式,很可能會出現(xiàn)類名如OpenGLRectangle, OpenGLCircle, VulkanRectangle, VulkanCircle…這顯然是一種不好的設(shè)計,因為每次添加或修改一個圖形類型或繪制方式,都會影響另一方。

而相反,通過橋接模式,我們可以把Shape和DrawAPI解耦:

interface DrawAPI {    // 抽象接口
    void draw();
}
class Shape {
     protected DrawAPI api;   
     public Shape(DrawAPI api)  {
        this.api = api;
     }
     public void draw() {
         api.draw();  // 調(diào)用實現(xiàn)
     }          
}

class OpenGL implements DrawAPI {
    @Override
    public void draw() {
         System.out.println("OpenGL drawing");
     }
}
class Vulkan implements DrawAPI {
    @Override
    public void draw() {
        System.out.println("Vulkan drawing");
    }
}

這樣我們就可以任意組合Shape和DrawAPI:

Shape openglShape = new Shape(new OpenGL());
Shape vulkanShape = new Shape(new Vulkan());
兩者的區(qū)別和聯(lián)系

雖然適配器模式和橋接模式在表面上有諸多相似之處,比如他們都試圖使得兩個或以上的類或接口能夠協(xié)同工作,但是他們的應(yīng)用場景和目標(biāo)是不一樣的。

適配器模式關(guān)注的是如何使已有組件能夠適應(yīng)你的接口以達(dá)到代碼重用,它解決的是“已經(jīng)存在”的問題。

而橋接模式關(guān)注的是如何設(shè)計你的抽象和實現(xiàn),使其能夠獨立變化,它解決的是“尚未發(fā)生”的問題。

更進一步的講:

  1. 適配器模式適配器模式的主要目標(biāo)是讓原本接口不兼容的兩個接口可以協(xié)同工作。它通常被用在已經(jīng)存在的系統(tǒng)中,以解決現(xiàn)有組件與系統(tǒng)其他部分的兼容性問題。通常情況下,適配器會封裝已經(jīng)存在的組件,并提供一個與系統(tǒng)其余部分兼容的接口。
  2. 橋接模式橋接模式的主要目標(biāo)在于將抽象與實現(xiàn)解耦,使得兩者可以獨立地變化。這種解耦使得抽象和實例化可以沿著各自的軸線變化,也就是說,抽象層次結(jié)構(gòu)的改變不會影響到實例化層次結(jié)構(gòu)的改變,反之亦然。

希望這篇文章能夠幫助你理解適配器模式和橋接模式,以及他們的區(qū)別和聯(lián)系。學(xué)習(xí)設(shè)計模式是一個長期的過程,不要著急,慢慢積累,總會有收獲的。文章來源地址http://www.zghlxwxcb.cn/news/detail-822474.html

到了這里,關(guān)于【設(shè)計模式】適配器和橋接器模式有什么區(qū)別?的文章就介紹完了。如果您還想了解更多內(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)文章

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

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

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

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

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

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

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

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

    2024年02月11日
    瀏覽(18)
  • 設(shè)計模式-- 3.適配器模式

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

    將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。 請求者(client):客戶端角色,需要使用適配器的對象,不需要關(guān)心適配器內(nèi)部的實現(xiàn),只對接目標(biāo)角色。 目標(biāo)角色(Target):目標(biāo)角色,和client直接對接,定義

    2024年01月18日
    瀏覽(25)
  • 《設(shè)計模式》之適配器模式

    《設(shè)計模式》之適配器模式

    把一個類的接口轉(zhuǎn)換成客戶端所期待的另一種接口,從而使原接口不匹配而無法再一起工作的兩個類能在一起工作。 在軟件系統(tǒng)中,由于應(yīng)用環(huán)境的變化,常常需要將“一些現(xiàn)存的對象”放在新的環(huán)境中應(yīng)用,但是新環(huán)境要求的接口是這些現(xiàn)存對象所不能滿足的。 如何應(yīng)對

    2024年02月09日
    瀏覽(20)
  • 設(shè)計模式四:適配器模式

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

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

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

    說起適配器,大家第一個想到的可能就是電源適配器。 電源適配器的作用想必同學(xué)們也都清楚,那就是將220伏高電壓轉(zhuǎn)換成想要的5伏至20伏左右穩(wěn)定的低電壓。 從某種程度上講,編程中經(jīng)常提起的適配器模式的原理與上面講到的基本是一致的。 用于將一個類的接口轉(zhuǎn)換成另

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

    適配器設(shè)計模式

    一、適配器模式 B站:java架構(gòu)師 定義:適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作 三種適配器:類的適配器模式、對象的適配器模式、接口的適配器模式 1.類適配器模式 實現(xiàn)方式:讓

    2024年02月11日
    瀏覽(22)
  • 【設(shè)計模式】使用適配器模式做補償設(shè)計

    【設(shè)計模式】使用適配器模式做補償設(shè)計

    適配器模式是一種 結(jié)構(gòu)型設(shè)計模式 ,它提供了一個中間層,通過這個中間層,客戶端可以使用統(tǒng)一的接口與具有不同接口的類進行交互,也就是說,將一個接口轉(zhuǎn)換成客戶期望的另一個接口,使得原本不兼容的接口能夠協(xié)同工作。 舉個現(xiàn)實中的例子,我們現(xiàn)在的很多輕薄筆

    2024年02月22日
    瀏覽(23)
  • 【設(shè)計模式】適配器模式怎么理解?

    【設(shè)計模式】適配器模式怎么理解?

    什么是轉(zhuǎn)換器模式? 轉(zhuǎn)換器模式是一種結(jié)構(gòu)型設(shè)計模式, 主要用于在兩種不同類型的對象之間進行轉(zhuǎn)換,而不需要改變原型的實際邏輯。這是一種在軟件設(shè)計中經(jīng)常使用的模式 ,它有助于保持代碼的整潔和組織。在軟件開發(fā)中,我們經(jīng)常會遇到在不同層之間轉(zhuǎn)換對象的需求

    2024年01月25日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包