Java設計模式之橋接模式的實現
橋接模式
橋接模式是將抽象部分與它的實現部分分離,使他們都可以獨立地變化。它是一種對象結構型模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。

上圖一個類被三個類繼承,使我們的程序擴展性,可維護性低,違反了單一職責原則。

具體代碼實現如下:
1.創(chuàng)建品牌接口
package com.jialidun.gof.birdge;
//品牌
public interface Brand {
void info();
}
2.創(chuàng)建計算機的抽象類
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.橋接模式的引入會增加系統的理解與設計難度,由于聚合關聯關系建立在抽象層,要求開發(fā)者針對抽象進行設計與編程。
2.橋接模式要求正確識別出系統中兩個獨立變化的維度,因此其使用范圍具有一定的局限性。
到此這篇關于Java設計模式之橋接模式分析的文章就介紹到這了,更多相關Java橋接模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用spring-task定時任務動態(tài)配置修改執(zhí)行時間
這篇文章主要介紹了使用spring-task定時任務動態(tài)配置修改執(zhí)行時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
IKAnalyzer使用不同版本中文分詞的切詞方式實現相同功能效果
今天小編就為大家分享一篇關于IKAnalyzer使用不同版本中文分詞的切詞方式實現相同功能效果,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
springboot配置項目啟動后自動打開瀏覽器訪問項目方式
這篇文章主要介紹了springboot配置項目啟動后自動打開瀏覽器訪問項目方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
java提取字符串中數字string以及獲取字符串中的整數或小數
這篇文章主要給大家介紹了關于java提取字符串中數字string以及獲取字符串中的整數或小數的相關資料,需要的朋友可以參考下2023-08-08

