国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java設計模式之橋接模式(Bridge)

2019-11-26 13:20:37
字體:
來源:轉載
供稿:網友

概述

橋接模式一種結構型模式,它主要應對的是:由于實際的需要,某個類具有兩個或以上的維度變化,如果只是用繼承將無法實現這種需要,或者使得設計變得相當臃腫。
橋接模式的做法是把變化的部分抽象出來,使變化部分與主類分離開來,從而將多個維度的變化徹底分離。最后,提供一個管理類來組合不同維度上的變化,通過這種組合來滿足業務的需要。

UML結構圖

代碼示例

package interview;interface Implementor{  void operationImpl();}abstract class Abstraction{  protected Implementor implementor;  public Abstraction(Implementor implementor){    this.implementor = implementor;  }  public void operation(){    implementor.operationImpl();  }}class ConcreteImplementorA implements Implementor {  @Override  public void operationImpl() {    System.out.println("具體實現A");  }  }class ConcreteImplementorB implements Implementor {  @Override  public void operationImpl() {    System.out.println("具體實現B");  }  }class RefinedAbstraction extends Abstraction{  public RefinedAbstraction(Implementor implementor) {    super(implementor);  }  public void otherOperation(){    System.out.println("其他操作");  }}public class MainTest {  public static void main(String arg[]) {    Implementor implementor = new ConcreteImplementorA();    RefinedAbstraction abstraction = new RefinedAbstraction(implementor);    abstraction.operation();    abstraction.otherOperation();  }}

使用場景

1.如果你不希望在抽象和實現部分采用固定的綁定關系,可以采用橋接模式,來把抽象和實現部分分開,然后在程序運行期間來動態的設置抽象部分需要用到的具體實現,還可以動態切換具體的實現。
2.如果出現抽象部分和實現部分都應該可以擴展的情況,可以采用橋接模式,讓抽象部分和實現部分可以獨立的變化,從而可以靈活的進行單獨擴展,而不是攪在一起,擴展一邊可以影響另一邊。
3.如果希望實現部分的修改,不會對客戶產生影響,可以采用橋接模式,客戶是面向抽象的接口在運行,實現部分的修改,可以獨立于抽象部分,也就不會對客戶產生影響了,也可以說對客戶是透明的。
4.如果采用繼承的實現方案,會導致產生很多子類,對于這種情況,可以考慮采用橋接模式,分析功能變化的原因,看看是否能分離成不同的維度,然后通過橋接模式來分離他們,從而減少子類的數目。

如果一個系統需要在構建的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態的聯系。
抽象化角色和具體化角色都應該可以被子類擴展。在這種情況下,橋接模式可以靈活地組合不同的抽象化角色和具體化角色,并獨立化地擴展。
設計要求實現化角色的任何改變不應當影響客戶端,或者說實現化角色的改變對客戶端是完全透明的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵩明县| 鹤壁市| 封开县| 彭州市| 岳西县| 多伦县| 葵青区| 行唐县| 崇义县| 兴山县| 通海县| 电白县| 海宁市| 锦屏县| 安吉县| 灌云县| 涞水县| 桂阳县| 伊吾县| 武义县| 响水县| 桐梓县| 双城市| 石门县| 兴和县| 白银市| 永胜县| 云林县| 诸城市| 从化市| 长沙县| 县级市| 随州市| 清徐县| 巢湖市| 白朗县| 富锦市| 资兴市| 巩留县| 贵南县| 山东|