橋接模式可以應用於不同的不同種類事物之間相互聯絡的條件下。比如不同的角色可以使用不同的**,此時就可以使用橋接模式。
例如:有幾種圖形cube,cpasule需要繪製,此時有個繪製工具opengl;
通用方法為:
繪製工具:
public class opengl//繪製引擎1號
}
public class direcetx//繪製引擎2號
}
圖形類public class sphere//球
public void draw()
}public class cube//球
public void draw()
}public class capsule//膠囊體
public void draw()
}
客戶端呼叫:private void start()
此時在客戶端呼叫不同的引擎繪製圖形的時候就需要呼叫圖形裡面不同的繪製方法,如果再增加乙個引擎,又要修改很多**,所以很麻煩。
圖形類和引擎類裡面都有很多相似的**,可以提取出來的。
因此可以宣告兩個類儲存重複**
public class ishape//圖形類
public ishape(renderengine renderengine)
}public abstract class renderengine//引擎類
圖形類,引擎類只需要繼承就好了
public class sphere:ishape//球
}public class cube:ishape//球
}public class capsule:ishape//膠囊體
}public class opengl:renderengine//繪製引擎1號
}public class direcetx:renderengine//繪製引擎2號
}
客戶端呼叫
private void start()
如果再新增圖形,或者引擎等操作就很簡單了。這就是橋接模式。
設計模式學習筆記 橋接模式
一 概述 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。二 模式中的角色 abstraction 定義抽象類的介面 維護乙個指向implementor型別物件的指標 refinedabstraction 擴充由abstraction定義的介面 implementor 定義具體行為,具體特徵的...
設計模式之橋接模式
public class test 兩個維度 乙個是具體產品,如狗 豬 乙個是抽象產品,如溫順的動物 冷酷的動物 排列組合 如溫順的狗 冷酷的豬等 abstract class animal 該橋接類的引入是關鍵 abstract class animalbridge extends animal ...
設計模式之 橋接模式
今天來學習橋接模式,在我們日常生活中,有很多的事物是可以 多維度 的變化的,比如我們去吃麵條,有雞絲面和牛肉麵兩種,每一種面又分為辣味的和不辣的,而且每種面可能會分為大碗小碗的。很多事物能夠變化的維度不止一種,甚至數十種,那麼我們在 上怎麼應對這些變化呢?每乙個都單獨弄乙個類顯然不是什麼好辦法。那麼...