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

Java設(shè)計模式之 -- 橋接模式

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

什么是橋接模式

橋接模式是一種結(jié)構(gòu)型設(shè)計模式,也被稱為“Handle/Body”。這種設(shè)計模式主要用于將抽象部分與它的實現(xiàn)部分分離,使它們可以獨立地變化。這種方式有助于減少系統(tǒng)中的耦合性,增加了擴展性。

主要解決什么問題

橋接模式主要解決的是類的維度擴展問題。在一個多維度變化的類中,使用繼承方式會導(dǎo)致類的數(shù)量急劇增加,而且增加新的維度也相對困難。而橋接模式能夠?qū)㈩惖母鱾€維度進行分離,獨立擴展,降低類之間的耦合度。

在什么時候我們需要使用橋接模式

當你想要避免永久性地綁定某個抽象類與其實現(xiàn)時。
當類的抽象和實現(xiàn)都應(yīng)該可以通過生成子類來擴展時。
當一個類的變化應(yīng)該不依賴于它的實現(xiàn)變化,兩者可以獨立變化時。
生活中的應(yīng)用實例

想象一下,你正在設(shè)計一個跨平臺的視頻播放器,支持Windows、Linux、Mac等多個操作系統(tǒng),同時需要支持多種不同的視頻格式,如MP4、AVI、MOV等。

如果使用繼承來設(shè)計,那么需要為每個操作系統(tǒng)和視頻格式的組合創(chuàng)建一個子類(例如:WindowsMP4Player、LinuxAVIPlayer等)。隨著支持的操作系統(tǒng)和視頻格式的增加,子類的數(shù)量會急劇增加。

如果采用橋接模式,可以將操作系統(tǒng)(抽象化)和視頻格式(實現(xiàn)化)分離開來,分別擴展。這樣只需要創(chuàng)建對應(yīng)操作系統(tǒng)和視頻格式的類,通過組合就可以得到我們想要的功能,大大減少了類的數(shù)量。

優(yōu)點

分離抽象接口及其實現(xiàn)部分。
提高了系統(tǒng)的可擴展性,在兩個方向上都可以獨立擴展。
實現(xiàn)細節(jié)對客戶透明,可以對用戶隱藏實現(xiàn)細節(jié)。

缺點

增加了系統(tǒng)的理解和設(shè)計難度,需要理解如何分離抽象和實現(xiàn)。
需要正確識別出系統(tǒng)中兩個獨立變化的維度。

使用場景

當一個類存在兩個獨立變化的維度,且這兩個維度都需要進行擴展時。
當你希望在不影響客戶端代碼的情況下隱藏抽象的實現(xiàn)細節(jié)時。

代碼示例

// 抽象化角色:顏色
interface Color {
    void bepaint(String shape);
}

// 實現(xiàn)化角色:紅色
class RedColor implements Color {
    public void bepaint(String shape){
        System.out.println("紅色的" + shape);
    }
}

// 實現(xiàn)化角色:藍色
class BlueColor implements Color {
    public void bepaint(String shape){
        System.out.println("藍色的" + shape);
    }
}

// 抽象化角色:形狀
abstract class Shape {
    protected Color color;
    public Shape(Color color) {
        this.color = color;
    }
    public abstract void draw();
}

// 擴充抽象化角色:圓形
class Circle extends Shape {
    public Circle(Color color) {
        super(color);
    }
    public void draw() {
        color.bepaint("圓形");
    }
}

// 擴充抽象化角色:正方形
class Square extends Shape {
    public Square(Color color) {
        super(color);
    }
    public void draw() {
        color.bepaint("正方形");
    }
}

public class Client {
    public static void main(String[] args) {
        Color red = new RedColor();
        Shape square = new Square(red);
        square.draw();

        Color blue = new BlueColor();
        Shape circle = new Circle(blue);
        circle.draw();
    }
}

在這個示例中,Color 是實現(xiàn)化角色,RedColor 和 BlueColor 是具體實現(xiàn)化角色;Shape 是抽象化角色,Square 和 Circle 是擴充抽象化角色。Shape 中包含了一個 Color 的引用,形成了橋接。

當我們運行 main 方法,就可以看到輸出 “紅色的正方形” 和 “藍色的圓形”。文章來源地址http://www.zghlxwxcb.cn/news/detail-612101.html

到了這里,關(guān)于Java設(shè)計模式之 -- 橋接模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Java設(shè)計模式之結(jié)構(gòu)型-橋接模式(UML類圖+案例分析)

    Java設(shè)計模式之結(jié)構(gòu)型-橋接模式(UML類圖+案例分析)

    目錄 一、基礎(chǔ)概念 二、UML類圖 三、角色設(shè)計 四、案例分析 4.1、支付方式 4.2、支付渠道? 五、總結(jié) 橋接模式(Bridge Pattern)是一種結(jié)構(gòu)型設(shè)計模式,其主要目的是“將抽象部分與實現(xiàn)部分分離,使它們都可以獨立地變化”。 橋接模式的核心思想是把抽象(abstraction)與實現(xiàn)

    2024年02月13日
    瀏覽(22)
  • 【設(shè)計模式——學(xué)習(xí)筆記】23種設(shè)計模式——橋接模式Bridge(原理講解+應(yīng)用場景介紹+案例介紹+Java代碼實現(xiàn))

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

    現(xiàn)在對不同手機類型的不同品牌實現(xiàn)操作編程(比如:開機、關(guān)機、上網(wǎng),打電話等),如圖 【對應(yīng)類圖】 【分析】 擴展性問題(類爆炸),如果我們再增加手機的樣式(旋轉(zhuǎn)式),就需要增加各個品牌手機的類,同樣如果我們增加一個手機品牌,也要在各個手機樣式類下增加。 違

    2024年02月15日
    瀏覽(21)
  • 【Java面試題】設(shè)計模式之七種結(jié)構(gòu)性模式——代理模式、適配器模式、橋接模式、裝飾模式、外觀模式、享元模式、組合模式

    目錄 一、代理模式 二、適配器模式 三、橋接模式 四、裝飾模式 五、外觀模式 六、享元模式 七、組合模式 概念: 代理模式是為其他對象提供一種以代理控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對

    2023年04月09日
    瀏覽(26)
  • 完全從零Java自學(xué)系列【入門篇】(第四課:Mysql服務(wù)端安裝&使用客戶端操作數(shù)據(jù)庫&初識SQL基礎(chǔ)操作&Java中使用第三方包&Java數(shù)據(jù)庫操作&初步理解面相對象真正的意義之橋接設(shè)計模式)

    完全從零Java自學(xué)系列【入門篇】(第四課:Mysql服務(wù)端安裝&使用客戶端操作數(shù)據(jù)庫&初識SQL基礎(chǔ)操作&Java中使用第三方包&Java數(shù)據(jù)庫操作&初步理解面相對象真正的意義之橋接設(shè)計模式)

    ??數(shù)據(jù)庫是專門用來存儲一系列集合數(shù)據(jù)的地方。所有的文件都可以被稱之為庫,當應(yīng)用場景沒那么復(fù)雜的時候,簡單的應(yīng)用程序用文本就可以了。數(shù)據(jù)庫的意義是為了設(shè)計更好的保障數(shù)據(jù)安全(如多線程操作)、數(shù)據(jù)一致、索引(如何在龐大的數(shù)據(jù)中快速查找)等等一系

    2024年02月21日
    瀏覽(29)
  • 設(shè)計模式之~橋接模式

    設(shè)計模式之~橋接模式

    橋接模式: ????????將抽象部分與它的實現(xiàn)部分分離,使他們都可以獨立地變化。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實現(xiàn)化之間的橋接結(jié)構(gòu),來實現(xiàn)二者的解耦。 ????????什么叫抽象與它的實現(xiàn)分離,這并不是說,讓抽象類與其派生類分離,因

    2024年02月07日
    瀏覽(18)
  • 設(shè)計模式——橋接模式

    設(shè)計模式——橋接模式

    引用 橋 我們大家都熟悉,顧名思義就是用來將河的兩岸聯(lián)系起來的。而此處的橋是用來將兩個獨立的結(jié)構(gòu)聯(lián)系起來,而這兩個被聯(lián)系起來的結(jié)構(gòu)可以獨立的變化,所有其他的理解只要建立在這個層面上就會比較容易。 基本介紹 橋接模式(Bridge)是指將實現(xiàn)與抽象放在兩個不

    2024年02月12日
    瀏覽(23)
  • 【設(shè)計模式】橋接模式

    【設(shè)計模式】橋接模式

    橋接(Bridge)是用于把抽象化與實現(xiàn)化解耦,使得二者可以獨立變化。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實現(xiàn)化之間的橋接結(jié)構(gòu),來實現(xiàn)二者的解耦。 這種模式涉及到一個作為橋接的接口,使得實體類的功能獨立于接口實現(xiàn)類,這兩種類型的類可被結(jié)

    2024年02月13日
    瀏覽(21)
  • 設(shè)計模式——橋接模式詳解

    設(shè)計模式——橋接模式詳解

    1.1?橋接模式的定義 維基百科: 橋接模式 是軟件設(shè)計模式中最復(fù)雜的模式之一,它把事物對象和其具體行為、具體特征分離開來,使它們可以各自獨立的變化。 百度百科: 橋接模式 是將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,

    2024年02月06日
    瀏覽(20)
  • 設(shè)計模式-橋接模式

    設(shè)計模式-橋接模式

    適配器模式 類似,以后也會遇到意思接近一樣的設(shè)計模式。在開發(fā)中一般多個模式混用,且根據(jù)不同的場景進行搭配,橋接模式也是 結(jié)構(gòu)型模式 將抽象的部分和實現(xiàn)的部分分離,使它們都可以獨立的變化。通俗來說,就是通過組合來 橋接 其它的 行為或維度 與適配器模式業(yè)

    2024年02月11日
    瀏覽(24)
  • 設(shè)計模式 07 橋接模式

    橋接模式(Bridge Pattern)屬于 結(jié)構(gòu)型 模式 橋接模式是將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為 柄體 (Handle and Body)模式或 接口 (Interface)模式。 比如需要創(chuàng)建電腦對象,市面上的電腦非常多, 品牌 有華為、蘋果、聯(lián)

    2024年02月11日
    瀏覽(15)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包