溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么實現(xiàn)橋接模式

發(fā)布時間:2022-01-26 15:19:05 來源:億速云 閱讀:117 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“Java怎么實現(xiàn)橋接模式”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Java怎么實現(xiàn)橋接模式”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

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

Java怎么實現(xiàn)橋接模式

實現(xiàn)

我們有一個作為橋接實現(xiàn)的 DrawAPI 接口和實現(xiàn)了 DrawAPI 接口的實體類 RedCircle、GreenCircle。Shape 是一個抽象類,將使用 DrawAPI 的對象。BridgePatternDemo,我們的演示類使用 Shape 類來畫出不同顏色的圓。 Java怎么實現(xiàn)橋接模式

步驟 1

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

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

步驟 2

創(chuàng)建實現(xiàn)了 DrawAPI 接口的實體橋接實現(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)建實現(xiàn)了 Shape 接口的實體類。

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]

讀到這里,這篇“Java怎么實現(xiàn)橋接模式”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI