首页
/
每日頭條
/
科技
/
bridge網絡模式是前後端部署嗎
bridge網絡模式是前後端部署嗎
更新时间:2026-11-12 01:49:30

  橋接模式(Bridge),是一種結構型設計模式,它是用組合關系代替繼承關系來分離複雜結構中不同維度的問題。目标是:将抽象部分與它的實現部分分離,使它們都可以獨立地變化。

  當複雜的場景中使用繼承時出現子類爆炸、不同的變化交融的時候,就可以使用橋接模式。

  當需要将每個維度抽取為獨立的類層次時,也可以使用橋接模式了。

  如何使用橋接模式呢,基本思想有兩個:

  組合代替繼承,可以減少子類,更有靈活性。抽象,将關注的那個維度進行抽象,從複雜中拆分出來。 橋接模式分抽象部分和實現部分,抽象部分就是抽取的那個維度而形成的獨立的類層次,實現部分就是原來那部分,抽象部分就是“橋”。

  開發前期進行設計時使用橋接模式更有效,改造已有系統,适配器模式更适合。

  橋接模式實現 主要的角色有:

  抽象化(Abstraction)角色:定義抽象化接口,并包含一個對實現化對象的引用。擴展抽象化(Refined Abstraction)角色:是抽象化角色的子類,實現抽象出來的業務方法,并調用實現化角色中的業務方法。實現化(Implementor)角色:實現化角色的接口。具體實現化(Concrete Implementor)角色:給出實現化角色接口的具體實現。客戶端(Client)角色:使用抽象化的“橋”。 類圖如下:

  

  用遙控與設備來演示代碼實現:

  /** 實現化部分 */ // 接口 public interface Device { void setVolume(int percent); int getVolume(); } // 具體實現 class TV implements Device { public void setVolume(int percent) { // 業務邏輯 } public int getVolume() { // 業務邏輯 } } /** 抽象化部分 */ // 接口 public abstract class RemoteControl { // 引用實現化的對象: protected Device device; // 抽象出來的業務 public abstract void volumeDown(); public abstract void volumeUp(); } // 擴展抽象化 public class TvRemoteControl extends RemoteControl { // 實現抽象化部分的業務。主要是組合了實現化的對象 public void volumeDown() { this.device.setVolume(this.device.getVolume()-10); } public void volumeUp() { this.device.setVolume(this.device.getVolume() 10); } // 還可以再擴展業務 public void mute() { this.device.setVolume(0); } } // 客戶端使用汽車時 RemoteControl rc = new TvRemoteControl(new TV()); car.volumeUp();

  以上代碼将遙控從整個系統提出來,設備代表原系統。各自可以獨立發展自己的體系。

  橋接模式的擴展 橋接模式實現比較複雜,設計思想是不要過度使用繼承,而是優先拆分某些部件,使用組合的方式來擴展功能。這種思想價值大于實際實現的意義。

  抽象化的組件可更換,與策略模式相似,區别是橋接模式從結構設計的,策略模式是在運行時改變行為。 在 JDBC 體系中,從整體中抽象出來的 Driver 類就是橋接對象。各個數據庫廠商有自己實現的 Driver 類。加載廠商的Driver類時,就會将 Driver 對象注冊到 DriverManager 中,客戶端從DriverManager獲取Connection時,DriverManager将交給注冊的Driver類去實現。

  分解獨立變化的維度,遇到需要橋接既有功能時,可以加上适配器模式。,

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
手機怎麼玩電腦遊戲
手機怎麼玩電腦遊戲
1、首先打開“手機應用商店”,在搜索處搜索雲電腦,然後下載雲電腦APP。2、等下載完成後,注冊登錄,...
2026-11-12
防靜電噴霧原理
防靜電噴霧原理
1、靜電噴霧為通過高壓靜電發生裝置使噴出的霧滴帶電的噴霧方法。其原理研究始于20世紀初,20世紀70年代研制出靜電噴霧機後,才得以在市場中應用。2、在工業生産中,靜電噴霧技術用于汽車、家電、儀表等外殼的噴塗。3、靜電噴霧法的特點是其形成霧滴帶有電荷,因而可以将農藥利用率提高到90%以上;并對靶标産生包抄效應。
2026-11-12
19朗逸胎壓燈怎麼消除
19朗逸胎壓燈怎麼消除
1、首先檢測車輛輪胎情況,有破損的盡快更換,高速行駛時爆胎是非常危險的,如果輪胎沒有安全隐患,可以補充氣壓(一般驅動輪2.3-2.7bar,從動輪2.2-2.5bar)。2、輪胎氣壓補充後,先關閉點火開關,然後重新開啟讓車輛進行自檢,如果此時依然出現胎壓報警燈,可以長按換擋杆前方右側的胎壓監測按鈕五...
2026-11-12
鍵盤删除鍵失靈怎麼辦
鍵盤删除鍵失靈怎麼辦
以華為MateBookX,win10系統為例:檢查鍵盤是否有鍵位卡鍵,比如鍵盤按鍵之間是否有異物,鍵盤按鈕是否複位(按下是否正常彈起)。關機拔掉鍵盤(如果是USB接口鍵盤,直接拔掉即可),将鍵盤翻轉過來敲擊幾下,并多按幾下失靈的功能鍵,再連接測試,如果依舊是個别或者部分按鈕失靈,可以判定是鍵盤故障,建議維修或者更換,一般不涉及系統問題。功能鍵F1-F12的使用:F1(幫助鍵):選定的程序中需要幫助
2026-11-12
e在matlab中怎麼輸入
e在matlab中怎麼輸入
演示機型:華為MateBookX系統版本:win10APP版本:MATLAB20201、以e為底的指數函數。可以通過exp(n)表示,如在命令行窗口中輸入exp(5)表示e的五次方。2、可以驗證一下以e為底的指數函數和對數函數表示形式,在命令行窗口中輸入log(exp(1)),按回車鍵,可以看到結果為1。3、繼續在命令行窗口中輸入log(exp(2)),按回車鍵,可以看到結果為2,可以驗證該表達式
2026-11-12
Copyright 2023-2026 - www.tftnews.com All Rights Reserved