java橋接模式是什么?
說明
1、橋接模式將抽象部分與實(shí)現(xiàn)部分分離,使其獨(dú)立變化。
它用組合關(guān)系代替繼承關(guān)系來實(shí)現(xiàn),從而降低了抽象和實(shí)現(xiàn)這兩個(gè)可變維度的耦合度。
2、橋接模式將繼承關(guān)系轉(zhuǎn)化為關(guān)聯(lián)關(guān)系,降低了類與類之間的耦合度、系統(tǒng)中類的數(shù)量和代碼量。
使用場(chǎng)景
不希望或不適用于繼承場(chǎng)景。
接口或抽象場(chǎng)景不穩(wěn)定。
重用性要求高的場(chǎng)景。
實(shí)例
public class BridgeTest {
public static void main(String[] args) {
Bridge bridge = new MyBridge();
/*調(diào)用第一個(gè)對(duì)象*/
Sourceable source1 = new SourceSub1();
bridge.setSource(source1);
bridge.method();
/*調(diào)用第二個(gè)對(duì)象*/
Sourceable source2 = new SourceSub2();
bridge.setSource(source2);
bridge.method();
}
}
java橋接模式優(yōu)缺點(diǎn)是什么?
1、優(yōu)點(diǎn)為抽象與分離,擴(kuò)展能力強(qiáng)。符合開閉原則、合成復(fù)用原則。實(shí)現(xiàn)對(duì)客戶的透明細(xì)節(jié)。
2、缺點(diǎn)是增加了系統(tǒng)理解和設(shè)計(jì)的難度。
由于聚合關(guān)系建立在抽象層,要求開發(fā)者設(shè)計(jì)和編程抽象化,正確識(shí)別系統(tǒng)中兩個(gè)獨(dú)立變化的維度。
實(shí)例
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)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。