java橋接模式是什么?
說明
1、橋接模式將抽象部分與實現(xiàn)部分分離,使其獨立變化。
它用組合關(guān)系代替繼承關(guān)系來實現(xiàn),從而降低了抽象和實現(xiàn)這兩個可變維度的耦合度。
2、橋接模式將繼承關(guān)系轉(zhuǎn)化為關(guān)聯(lián)關(guān)系,降低了類與類之間的耦合度、系統(tǒng)中類的數(shù)量和代碼量。
使用場景
不希望或不適用于繼承場景。
接口或抽象場景不穩(wěn)定。
重用性要求高的場景。
實例
public class BridgeTest {
public static void main(String[] args) {
Bridge bridge = new MyBridge();
/*調(diào)用第一個對象*/
Sourceable source1 = new SourceSub1();
bridge.setSource(source1);
bridge.method();
/*調(diào)用第二個對象*/
Sourceable source2 = new SourceSub2();
bridge.setSource(source2);
bridge.method();
}
}
java橋接模式優(yōu)缺點是什么?
1、優(yōu)點為抽象與分離,擴展能力強。符合開閉原則、合成復(fù)用原則。實現(xiàn)對客戶的透明細節(jié)。
2、缺點是增加了系統(tǒng)理解和設(shè)計的難度。
由于聚合關(guān)系建立在抽象層,要求開發(fā)者設(shè)計和編程抽象化,正確識別系統(tǒng)中兩個獨立變化的維度。
實例
public class Client {
public static void main(String[] args) {
OperatingSystemVersion os = new Mac(new AVIFile());
os.play("戰(zhàn)狼3");
/**
* 輸出:Mac正在播放:avi視頻文件:戰(zhàn)狼3
*/
}
}
更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。