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

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

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

橋接模式的目標(biāo)與設(shè)計(jì)

冬至子 ? 來源:全棧開發(fā)的碼農(nóng) ? 作者:全棧開發(fā)的碼農(nóng) ? 2023-06-01 14:29 ? 次閱讀

橋接模式的目標(biāo)是使對(duì)象的抽象部分與實(shí)現(xiàn)部分分離,使之可以分別獨(dú)立變化,以盡量避免產(chǎn)生耦合。

下圖以繪制圓形為例:圓形的顏色通過接口類DrawAPI及其2個(gè)實(shí)現(xiàn)類RedCircle以及GreenCircle實(shí)現(xiàn);圓形的坐標(biāo)以及半徑通過抽象類及其擴(kuò)展類實(shí)現(xiàn),在實(shí)現(xiàn)draw()方法時(shí),直接使用DrawAPI類中的相關(guān)對(duì)象的drawCircle方法。

圖片

DrawAPI接口類:

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

RedCircle實(shí)現(xiàn)類:

package bridge;
public class RedCircle implements DrawAPI{
  @Override
  public void drawCircle(int radius, int x, int y) {
    System.out.println("畫紅色圓,半徑"+radius+",坐標(biāo):x="+x+",y="+y);
  }
}

GreenCircle實(shí)現(xiàn)類:

package bridge;
public class GreenCircle implements DrawAPI{
  @Override
  public void drawCircle(int radius, int x, int y) {
    System.out.println("畫綠色圓,半徑"+radius+",坐標(biāo):x="+x+",y="+y);  
  }
}

Shape抽象類:

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

Circle擴(kuò)展類:

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

主函數(shù)調(diào)用方式:

package main;
import bridge.*;
public class BridgePattern {
  public static void main(String[] args) {
    Shape redCircle =new Circle(new RedCircle(),10,10,5);
    Shape greenCircle = new Circle(new GreenCircle(),20,20,6);
    redCircle.draw();
    greenCircle.draw();
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 耦合器
    +關(guān)注

    關(guān)注

    8

    文章

    725

    瀏覽量

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

    關(guān)注

    1

    文章

    84

    瀏覽量

    10438
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于模式遇到的問題

    VMware使用模式,已經(jīng)手動(dòng)設(shè)置ip地址和主機(jī)ip同一網(wǎng)段,但是ifconfig顯示的ip地址卻和vmnet8(NAT)同一網(wǎng)段?怎么解決?
    發(fā)表于 10-16 15:06

    CentOS靜態(tài)IP配置(模式

    [2018-08-26]-[CentOS]CentOS靜態(tài)IP配置(模式
    發(fā)表于 05-12 08:27

    COM和CORBA的與應(yīng)用

    根據(jù)CORBA規(guī)范,闡述了組件的體系結(jié)構(gòu)和六種模型,并引申出八種方式,比較了各種
    發(fā)表于 02-27 16:07 ?29次下載
    COM和CORBA的<b class='flag-5'>橋</b><b class='flag-5'>接</b>與應(yīng)用

    DS31256 HDLC控制器的配置步驟—模式

    DS31256 HDLC控制器的配置步驟—模式 本應(yīng)用筆記提供了怎樣配置模式下DS31
    發(fā)表于 04-21 14:59 ?1537次閱讀
    DS31256 HDLC控制器的配置步驟—<b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>

    方式電路圖

    方式電路圖
    發(fā)表于 07-16 17:43 ?5023次閱讀
    <b class='flag-5'>橋</b><b class='flag-5'>接</b>方式電路圖

    車載功放的功能

    車載功放的功能              功能是指為增加輸出功率而將車載功放
    發(fā)表于 01-04 11:10 ?3871次閱讀

    網(wǎng)橋和,網(wǎng)橋和是什么意思

    網(wǎng)橋和,網(wǎng)橋和是什么意思 網(wǎng)橋(Bridge)也稱橋接器,是連接兩個(gè)局域網(wǎng)的存儲(chǔ)轉(zhuǎn)發(fā)設(shè)備,用它可以完成具有相同或相似體系
    發(fā)表于 03-20 16:03 ?1.3w次閱讀

    D類放大器的方法

    式或全操作利用兩個(gè)標(biāo)準(zhǔn)的半式通道形成一個(gè)浮動(dòng)式系載輸出。在
    發(fā)表于 07-14 15:34 ?1818次閱讀
    D類放大器的<b class='flag-5'>橋</b><b class='flag-5'>接</b>方法

    多個(gè)路由器如何無線成一個(gè)網(wǎng)絡(luò) 路由器教程

    多個(gè)路由器如何無線成一個(gè)網(wǎng)絡(luò) 路由器教程
    發(fā)表于 09-28 09:25 ?1次下載

    設(shè)計(jì)模式結(jié)構(gòu)性:模式

    模式不是將兩個(gè)不相干的類鏈接,而是將一個(gè)需要多維度變化的類拆分成抽象部分和實(shí)現(xiàn)部分,并且在抽象層對(duì)兩者做組合關(guān)聯(lián),是用組合的方式來解決繼承的問題。
    的頭像 發(fā)表于 06-08 10:49 ?815次閱讀
    設(shè)計(jì)<b class='flag-5'>模式</b>結(jié)構(gòu)性:<b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>

    遠(yuǎn)程網(wǎng)關(guān)模式實(shí)現(xiàn)同一局域網(wǎng)組網(wǎng)管理(Superlink)

    遠(yuǎn)程網(wǎng)關(guān)模式配置介紹及示例功能簡(jiǎn)述智聯(lián)物聯(lián)遠(yuǎn)程網(wǎng)關(guān)模式,是指電腦側(cè)Superlink遠(yuǎn)程
    的頭像 發(fā)表于 04-26 15:32 ?1148次閱讀
    遠(yuǎn)程網(wǎng)關(guān)<b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>實(shí)現(xiàn)同一局域網(wǎng)組網(wǎng)管理(Superlink)

    模式應(yīng)用場(chǎng)景

    1、什么是模式? Decouple an abstraction from its implementation so that the two can vary independently.
    的頭像 發(fā)表于 10-09 14:30 ?1230次閱讀
    <b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>模式</b>應(yīng)用場(chǎng)景

    無線和mesh組網(wǎng)哪個(gè)好?

    無線和Mesh組網(wǎng)都是用于擴(kuò)展無線網(wǎng)絡(luò)覆蓋范圍的技術(shù),但它們的工作原理和應(yīng)用場(chǎng)景有所不同。 無線接通常是一對(duì)一的連接,相對(duì)較容易設(shè)置和維護(hù)。它的優(yōu)點(diǎn)在于簡(jiǎn)單性,適用于需要建立點(diǎn)對(duì)點(diǎn)連接的場(chǎng)景
    的頭像 發(fā)表于 01-19 16:12 ?7904次閱讀

    路由器路由器怎樣 路由器接好還是中繼好

    路由器和中繼是常用的網(wǎng)絡(luò)擴(kuò)展方式,用于擴(kuò)大網(wǎng)絡(luò)覆蓋范圍,提供更好的網(wǎng)絡(luò)連接。這兩種方式在不同的場(chǎng)景下有著各自的優(yōu)勢(shì),下面將詳細(xì)介紹如何路由器,以及
    的頭像 發(fā)表于 02-20 14:26 ?5526次閱讀

    網(wǎng)絡(luò)模式是什么? 網(wǎng)絡(luò)模式和路由模式的區(qū)別

    網(wǎng)絡(luò)模式是一種網(wǎng)絡(luò)連接方式,它可以將多個(gè)設(shè)備連接在一起,使它們可以相互通信。在網(wǎng)絡(luò)模式
    的頭像 發(fā)表于 05-10 13:48 ?4323次閱讀