路由器設置橋接模式:光貓橋接模式怎麼設置

橋接設計模式:

  • 結構型設計模式
  • 將抽象部分與它實現部分離,使它們都可以獨立地變化
  • 通俗來說,是通過組合來橋接其它的⾏為/維度

應用場景:

  • 系統需要在構件的抽象化⻆色和具體化⻆色之間增加更多的靈活性
  • 不想使用繼承導致系統類的個數急劇增加的系統
  • 有時候一個類,可能會擁有多個變化維度,⽐如啤酒,有不同的容量和品牌,可以使用繼承組合的⽅式進行開發,假如維度很多,就容易易出現類的膨脹,使用橋接模式就可以解決這個問題,且解耦

業務背景:

  • 手機可以從兩個維度進行變化,一個是品牌,一個是內存.此時我們就可以通過橋接模式將這兩個維度分離開來,每一個維度都可以獨立擴展.比如說手機品牌,蘋果、三星、鎚子等等.內存方面又可以生產10G、16G等等.從專業的角度來看可以這樣定義橋接模式.

橋接模式圖:

輕鬆弄懂橋接模式

核心組成:

  • client:指的是我們買手機的人
  • Abstraction(抽象類):指的是手機抽象類
  • Refined Abstraction(具體類):指的是具體手機品牌
  • Implementor:在這裡相當於手機的其他組件,內存
  • ConcreteImplementor:具體的內存型號.

實現步驟:

  • 定義Implementor,這裡定義手機內存接口
public interface Memory {
  public void addMemory();
}
  • 定義ConcreteImplementor,這裡指具體的內存
public class Memory6G implements Memory {
  @Override
  public void addMemory() {
    System.out.println("6G內存");
  }
}

public class Memory8G implements Memory {
  @Override
  public void addMemory() {
    System.out.println("8G內存");
  }
}
  • 定義Abstraction手機抽象類
public abstract class Phone {
  public Memory memory;

  public void setMemory(Memory memory) {
    this.memory = memory;
  }

  public abstract void buyPhone();
}
  • 定義Refined Abstraction(具體的手機品牌)
public class HuaWei extends Phone {
  @Override
  public void buyPhone() {
    System.out.println("購買de華為手機-");
    memory.addMemory();
  }
}

public class XiaoMi extends Phone {
  @Override
  public void buyPhone() {
    System.out.println("購買de小米手機-");
    memory.addMemory();
  }
}
  • 上下文應用
public class BridgeContext {

  public static void main(String[] args) {
    Phone huaWei = new HuaWei();
    huaWei.setMemory(new Memory6G());
    huaWei.buyPhone();
    huaWei.setMemory(new Memory8G());
    huaWei.buyPhone();
    Phone xiaomi = new XiaoMi();
    xiaomi.setMemory(new Memory6G());
    xiaomi.buyPhone();
    xiaomi.setMemory(new Memory8G());
    xiaomi.buyPhone();
  }
}

橋接模式的優點:

  • 抽象和實現的分離.
  • 優秀的擴展能⼒,符合開閉原則

橋接模式的缺點:

  • 增加系統的理解與設計難度
  • 使用聚合關聯關係建立在抽象層,要求開發者針對抽象 進⾏設計與編程,比如抽象類汽車,⾥面聚合了顏⾊類,有點像對象適配器

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/219148.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 10:55
下一篇 2024-12-09 10:55

相關推薦

發表回復

登錄後才能評論