tft每日頭條

 > 科技

 > bridge網絡模式是前後端部署嗎

bridge網絡模式是前後端部署嗎

科技 更新时间:2024-07-20 14:27:01

  橋接模式(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類去實現。

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

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved