Java設計模式之橋接模式的實現
橋接模式
橋接模式是將抽象部分與它的實現部分分離,使他們都可以獨立地變化。它是一種對象結構型模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。
上圖一個類被三個類繼承,使我們的程序擴展性,可維護性低,違反瞭單一職責原則。
具體代碼實現如下:
1.創建品牌接口
package com.jialidun.gof.birdge; //品牌 public interface Brand { void info(); }
2.創建計算機的抽象類
package com.jialidun.gof.birdge; //抽象的電腦類型類 public abstract class Computer { //組合,品牌 橋 protected Brand brand; public Computer(Brand brand){ this.brand = brand; } public void info(){ brand.info();//自帶品牌 } }
3.蘋果品牌
package com.jialidun.gof.birdge; //蘋果品牌 public class Apple implements Brand{ @Override public void info() { System.out.print("蘋果"+"\n"); } }
4.聯想品牌
package com.jialidun.gof.birdge; //聯想品牌 public class Lenovo implements Brand{ @Override public void info() { System.out.print("聯想"+"\n"); } }
5.臺式機
package com.jialidun.gof.birdge; public class Desktop extends Computer{ public Desktop(Brand brand) { super(brand); System.out.print("臺式機"); } }
6.筆記本
package com.jialidun.gof.birdge; public class laptop extends Computer{ public laptop(Brand brand) { super(brand); System.out.print("筆記本"); } }
7.測試
package com.jialidun.gof.birdge; public class Test { public static void main(String[] args) { //蘋果筆記本 Computer computer = new laptop(new Apple()); computer.info(); //聯想臺式機 Desktop desktop = new Desktop(new Lenovo()); desktop.info(); } }
好處分析:
1.橋接模式偶爾類似於多繼承方案,但是多繼承方案違背瞭類的單一職責原則, 復用性比較差,類的個數也非常多,橋接模式是比多繼承方案更好的解決方法。極大的減少瞭子類的個數,從而降低管理和維護的成本
2.橋接模式提高瞭系統的可擴充性,在兩個變化維度中任意擴展一個維度,都不需要修改原有系統。符合開閉原則,就像一座橋,可以把兩個變化的維度連接起來
劣勢分析
1.橋接模式的引入會增加系統的理解與設計難度,由於聚合關聯關系建立在抽象層,要求開發者針對抽象進行設計與編程。
2.橋接模式要求正確識別出系統中兩個獨立變化的維度,因此其使用范圍具有一定的局限性。
到此這篇關於Java設計模式之橋接模式分析的文章就介紹到這瞭,更多相關Java橋接模式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!