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

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

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

橋接(Bridge)是用于把抽象化與實(shí)現(xiàn)化解耦,使得二者可以獨(dú)立變化。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實(shí)現(xiàn)化之間的橋接結(jié)構(gòu),來實(shí)現(xiàn)二者的解耦。

這種模式涉及到一個作為橋接的接口,使得實(shí)體類的功能獨(dú)立于接口實(shí)現(xiàn)類,這兩種類型的類可被結(jié)構(gòu)化改變而互不影響。

橋接模式的目的是將抽象與實(shí)現(xiàn)分離,使它們可以獨(dú)立地變化,該模式通過將一個對象的抽象部分與它的實(shí)現(xiàn)部分分離,使它們可以獨(dú)立地改變。它通過組合的方式,而不是繼承的方式,將抽象和實(shí)現(xiàn)的部分連接起來。

我們通過下面的實(shí)例來演示橋接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象類方法但是不同的橋接實(shí)現(xiàn)類,來畫出不同顏色的圓。

介紹

意圖:將抽象部分與實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化。

主要解決:在有多種可能會變化的情況下,用繼承會造成類爆炸問題,擴(kuò)展起來不靈活。

何時使用:實(shí)現(xiàn)系統(tǒng)可能有多個角度分類,每一種角度都可能變化。

如何解決:把這種多角度分類分離出來,讓它們獨(dú)立變化,減少它們之間耦合。

關(guān)鍵代碼:抽象類依賴實(shí)現(xiàn)類。

應(yīng)用實(shí)例:?1、豬八戒從天蓬元帥轉(zhuǎn)世投胎到豬,轉(zhuǎn)世投胎的機(jī)制將塵世劃分為兩個等級,即:靈魂和肉體,前者相當(dāng)于抽象化,后者相當(dāng)于實(shí)現(xiàn)化。生靈通過功能的委派,調(diào)用肉體對象的功能,使得生靈可以動態(tài)地選擇。 2、墻上的開關(guān),可以看到的開關(guān)是抽象的,不用管里面具體怎么實(shí)現(xiàn)的。

優(yōu)點(diǎn):?1、抽象和實(shí)現(xiàn)的分離。 2、優(yōu)秀的擴(kuò)展能力。 3、實(shí)現(xiàn)細(xì)節(jié)對客戶透明。

缺點(diǎn):橋接模式的引入會增加系統(tǒng)的理解與設(shè)計難度,由于聚合關(guān)聯(lián)關(guān)系建立在抽象層,要求開發(fā)者針對抽象進(jìn)行設(shè)計與編程。

使用場景:?1、如果一個系統(tǒng)需要在構(gòu)件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態(tài)的繼承聯(lián)系,通過橋接模式可以使它們在抽象層建立一個關(guān)聯(lián)關(guān)系。 2、對于那些不希望使用繼承或因?yàn)槎鄬哟卫^承導(dǎo)致系統(tǒng)類的個數(shù)急劇增加的系統(tǒng),橋接模式尤為適用。 3、一個類存在兩個獨(dú)立變化的維度,且這兩個維度都需要進(jìn)行擴(kuò)展。

注意事項(xiàng):對于兩個獨(dú)立變化的維度,使用橋接模式再適合不過了。

以下是橋接模式的幾個關(guān)鍵角色:

  • 抽象(Abstraction):定義抽象接口,通常包含對實(shí)現(xiàn)接口的引用。
  • 擴(kuò)展抽象(Refined Abstraction):對抽象的擴(kuò)展,可以是抽象類的子類或具體實(shí)現(xiàn)類。
  • 實(shí)現(xiàn)(Implementor):定義實(shí)現(xiàn)接口,提供基本操作的接口。
  • 具體實(shí)現(xiàn)(Concrete Implementor):實(shí)現(xiàn)實(shí)現(xiàn)接口的具體類。

實(shí)現(xiàn)

我們有一個作為橋接實(shí)現(xiàn)的?DrawAPI?接口和實(shí)現(xiàn)了?DrawAPI?接口的實(shí)體類?RedCircleGreenCircle。Shape?是一個抽象類,將使用?DrawAPI?的對象。BridgePatternDemo?類使用?Shape?類來畫出不同顏色的圓。

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

?

步驟 1

創(chuàng)建橋接實(shí)現(xiàn)接口。

DrawAPI.java

public interface DrawAPI {
   public void drawCircle(int radius, int x, int y);
}

步驟 2

創(chuàng)建實(shí)現(xiàn)了?DrawAPI?接口的實(shí)體橋接實(shí)現(xiàn)類。

RedCircle.java

public class RedCircle implements DrawAPI {
   @Override
   public void drawCircle(int radius, int x, int y) {
      System.out.println("Drawing Circle[ color: red, radius: "
         + radius +", x: " +x+", "+ y +"]");
   }
}

GreenCircle.java

public class GreenCircle implements DrawAPI {
   @Override
   public void drawCircle(int radius, int x, int y) {
      System.out.println("Drawing Circle[ color: green, radius: "
         + radius +", x: " +x+", "+ y +"]");
   }
}

步驟 3

使用?DrawAPI?接口創(chuàng)建抽象類?Shape。

Shape.java

public abstract class Shape {
   protected DrawAPI drawAPI;
   protected Shape(DrawAPI drawAPI){
      this.drawAPI = drawAPI;
   }
   public abstract void draw();  
}

步驟 4

創(chuàng)建實(shí)現(xiàn)了?Shape?抽象類的實(shí)體類。

Circle.java

public class Circle extends Shape {
   private int x, y, radius;
 
   public Circle(int x, int y, int radius, DrawAPI drawAPI) {
      super(drawAPI);
      this.x = x;  
      this.y = y;  
      this.radius = radius;
   }
 
   public void draw() {
      drawAPI.drawCircle(radius,x,y);
   }
}

步驟 5

使用?Shape?和?DrawAPI?類畫出不同顏色的圓。

BridgePatternDemo.java

public class BridgePatternDemo {
   public static void main(String[] args) {
      Shape redCircle = new Circle(100,100, 10, new RedCircle());
      Shape greenCircle = new Circle(100,100, 10, new GreenCircle());
 
      redCircle.draw();
      greenCircle.draw();
   }
}

步驟 6

執(zhí)行程序,輸出結(jié)果:

Drawing Circle[ color: red, radius: 10, x: 100, 100]
Drawing Circle[  color: green, radius: 10, x: 100, 100]

?文章來源地址http://www.zghlxwxcb.cn/news/detail-647763.html

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

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

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

相關(guān)文章

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

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

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

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

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

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

    橋接模式(Bridge Pattern):旨在將抽象部分和實(shí)現(xiàn)部分解耦,使它們可以獨(dú)立地變化。這種模式通過將抽象和實(shí)現(xiàn)分離,使它們可以獨(dú)立地進(jìn)行擴(kuò)展和修改,而不會相互影響。它是一種對象結(jié)構(gòu)型模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。 假如需要使用大

    2024年01月25日
    瀏覽(15)
  • 【前端設(shè)計模式】之橋接模式

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

    設(shè)計模式是在軟件開發(fā)中經(jīng)過驗(yàn)證的解決問題的方法。它們是從經(jīng)驗(yàn)中總結(jié)出來的,可以幫助我們更好地組織和管理代碼,提高代碼的可維護(hù)性、可擴(kuò)展性和可重用性。無論是前端還是后端開發(fā),設(shè)計模式都扮演著重要的角色。在本專欄中,我們將探索一些常見的前端設(shè)計模

    2024年02月04日
    瀏覽(22)
  • js設(shè)計模式:橋接模式

    js設(shè)計模式:橋接模式

    可以將復(fù)雜的類進(jìn)行一些拆分,讓抽象和實(shí)現(xiàn)進(jìn)行分離解耦,可以讓每一個部分都可以單獨(dú)維護(hù) 方便擴(kuò)展和維護(hù)

    2024年02月22日
    瀏覽(24)
  • 設(shè)計模式-橋接模式(Bridge)

    橋接模式(Bridge Pattern)是一種結(jié)構(gòu)型設(shè)計模式,用于將抽象部分和實(shí)現(xiàn)部分分離,使它們可以獨(dú)立地變化。這種分離允許你將一個類的功能層次結(jié)構(gòu)(抽象)與另一個類的實(shí)現(xiàn)層次結(jié)構(gòu)(實(shí)現(xiàn))分開,從而在不同層次上進(jìn)行修改和擴(kuò)展。在本篇博客中,我們將詳細(xì)介紹橋接

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

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

    橋接模式是將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。 這個概念聽著那是相當(dāng)拗口了,其實(shí)通過例子解釋后,就能很好的理解了。 下面先看一個例子,這個例子表現(xiàn)了手機(jī)與手機(jī)軟件之間的關(guān)系 2.1HandsetSoft類 這個類是手機(jī)軟件的抽象類 2.2HandSetGame類 這個是

    2024年02月16日
    瀏覽(20)
  • 【結(jié)構(gòu)型設(shè)計模式】C#設(shè)計模式之橋接模式

    題目:設(shè)計一個橋接模式來實(shí)現(xiàn)圖形和顏色之間的解耦。 解析: 橋接模式是一種結(jié)構(gòu)型設(shè)計模式,它將抽象部分與實(shí)現(xiàn)部分分離,使它們可以獨(dú)立變化。在這個例子中,抽象部分是圖形(如圓形、正方形),實(shí)現(xiàn)部分是顏色(如紅色、藍(lán)色)。 我們可以使用橋接模式來解耦

    2024年02月13日
    瀏覽(30)
  • Java設(shè)計模式之 -- 橋接模式

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

    2024年02月15日
    瀏覽(28)
  • 結(jié)構(gòu)型設(shè)計模式——橋接模式

    結(jié)構(gòu)型設(shè)計模式——橋接模式

    橋接模式(Bridge pattern): 使用橋接模式通過將實(shí)現(xiàn)和抽象放在兩個不同的類層次中而使它們可以獨(dú)立改變。 橋接模式 (Bridge) 是一種結(jié)構(gòu)型設(shè)計模式, 可將 抽象 部分與 實(shí)現(xiàn) 部分 分離 ,使它們都可以獨(dú)立的變化。如果一個系統(tǒng)需要在構(gòu)件的抽象化角色和具體化角色之間增加更

    2024年02月07日
    瀏覽(34)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包