国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

上海閔行天氣連云港seo優(yōu)化公司

上海閔行天氣,連云港seo優(yōu)化公司,360建筑網(wǎng)掛證可靠嗎,網(wǎng)站建設(shè)策劃 優(yōu)幫云概敘:橋接模式用一種巧妙的方式處理多層繼承存在的問題, 用抽象關(guān)聯(lián)取代了傳統(tǒng)的多層繼承, 將類之間的靜態(tài)繼承關(guān)系轉(zhuǎn)換為動態(tài)的對象組合關(guān)系, 使得系統(tǒng)更加靈活,并易于擴(kuò)展, 同時有效控制了系統(tǒng)中類的個數(shù)…

概敘:橋接模式用一種巧妙的方式處理多層繼承存在的問題,
用抽象關(guān)聯(lián)取代了傳統(tǒng)的多層繼承,
將類之間的靜態(tài)繼承關(guān)系轉(zhuǎn)換為動態(tài)的對象組合關(guān)系,
使得系統(tǒng)更加靈活,并易于擴(kuò)展,
同時有效控制了系統(tǒng)中類的個數(shù),橋接定義如下:

橋接模式:將抽象部分與它實現(xiàn)的部分分離,使它們都可用獨立地變化。
它是一種對象結(jié)構(gòu)模式,又稱柄體模式(Handle and Body)或接口模式.

橋接模式的結(jié)構(gòu)與其名稱一樣,存在一條連接兩個繼承等級結(jié)構(gòu)的橋,

舉例:

讓我們通過一個更簡單的例子來更深入地理解橋接設(shè)計模式以及它是如何解決問題的。考慮一個圖形繪制的場景,有兩個維度的變化:形狀和顏色。在沒有橋接模式的情況下,可能會考慮創(chuàng)建形狀的子類和顏色的子類,然后通過組合它們來得到所有可能的組合。這會導(dǎo)致類的爆炸,因為每個形狀都需要與每種顏色組合一次。

不使用橋接模式的情況:

// 不使用橋接模式的代碼
class CircleRed extends Circle {@Overridepublic void draw() {System.out.println("Drawing red circle");}
}class CircleGreen extends Circle {@Overridepublic void draw() {System.out.println("Drawing green circle");}
}class RectangleRed extends Rectangle {@Overridepublic void draw() {System.out.println("Drawing red rectangle");}
}class RectangleGreen extends Rectangle {@Overridepublic void draw() {System.out.println("Drawing green rectangle");}
}// 客戶端代碼
public class WithoutBridgePatternExample {public static void main(String[] args) {CircleRed redCircle = new CircleRed();redCircle.draw(); // Drawing red circleCircleGreen greenCircle = new CircleGreen();greenCircle.draw(); // Drawing green circleRectangleRed redRectangle = new RectangleRed();redRectangle.draw(); // Drawing red rectangleRectangleGreen greenRectangle = new RectangleGreen();greenRectangle.draw(); // Drawing green rectangle}
}

上述代碼存在的問題是,每增加一種形狀或顏色的組合,都需要創(chuàng)建一個新的子類,導(dǎo)致類的數(shù)量呈指數(shù)級增長。

使用橋接模式的情況:

現(xiàn)在,我們使用橋接模式來解決這個問題:

// 使用橋接模式的代碼
interface Color {void applyColor();
}class Red implements Color {@Overridepublic void applyColor() {System.out.println("Applying red color");}
}class Green implements Color {@Overridepublic void applyColor() {System.out.println("Applying green color");}
}abstract class Shape {protected Color color;public Shape(Color color) {this.color = color;}abstract void draw();
}class Circle extends Shape {public Circle(Color color) {super(color);}@Overridevoid draw() {System.out.print("Drawing circle: ");color.applyColor();}
}class Rectangle extends Shape {public Rectangle(Color color) {super(color);}@Overridevoid draw() {System.out.print("Drawing rectangle: ");color.applyColor();}
}// 客戶端代碼
public class WithBridgePatternExample {public static void main(String[] args) {Shape redCircle = new Circle(new Red());redCircle.draw(); // Drawing circle: Applying red colorShape greenRectangle = new Rectangle(new Green());greenRectangle.draw(); // Drawing rectangle: Applying green color}
}

在這個例子中,通過使用橋接模式,我們將形狀(CircleRectangle)和顏色(RedGreen)分離開來。這樣,每個維度的變化都可以獨立進(jìn)行擴(kuò)展,而不需要創(chuàng)建大量的子類。如果需要新增一種顏色或形狀,只需添加相應(yīng)的類即可,不會導(dǎo)致類的爆炸。橋接模式使得系統(tǒng)更加靈活,易于擴(kuò)展和維護(hù)。

比如新增一個顏色后的代碼

假設(shè)我們要新增一種顏色,比如藍(lán)色(Blue),我們只需添加一個實現(xiàn)Color接口的Blue類,并在客戶端中創(chuàng)建一個新的Shape對象,將這個新的顏色傳遞給它。

// 新增的藍(lán)色類
class Blue implements Color {@Overridepublic void applyColor() {System.out.println("Applying blue color");}
}// 在客戶端中使用新增的藍(lán)色
public class AddNewColorExample {public static void main(String[] args) {Shape blueCircle = new Circle(new Blue());blueCircle.draw(); // Drawing circle: Applying blue color}
}

這里我們無需修改之前的形狀類(Circle)或其他顏色類,而是通過新增一個實現(xiàn)Color接口的類來添加新的顏色。這就是橋接模式的靈活性體現(xiàn)之處。新增一個顏色并不會影響到其他部分的代碼,保持了系統(tǒng)的可擴(kuò)展性。


http://www.aloenet.com.cn/news/32351.html

相關(guān)文章:

  • 天津網(wǎng)站制作機(jī)玩法部百度指數(shù)的需求指數(shù)
  • 98同城招聘網(wǎng)信息seo課堂
  • 大連商城網(wǎng)站建設(shè)產(chǎn)品推廣網(wǎng)站
  • 網(wǎng)頁三劍客的網(wǎng)頁制作軟件是seo資料站
  • 免費的中文logo網(wǎng)站sem投放
  • 網(wǎng)站開源系統(tǒng)免費網(wǎng)站建設(shè)seo
  • 營銷qq和企業(yè)qq區(qū)別深圳專門做seo的公司
  • 網(wǎng)站建設(shè)英文怎么說百度一下你就知道官網(wǎng)網(wǎng)址
  • 成都商城網(wǎng)站建設(shè)地址推廣網(wǎng)頁怎么做的
  • 西安網(wǎng)站制作公司排名口碑營銷屬于什么營銷
  • 西部數(shù)碼網(wǎng)站助手4.0運營商推廣5g技術(shù)
  • 初學(xué)網(wǎng)站開發(fā)書籍關(guān)鍵詞歌曲歌詞
  • 濟(jì)南網(wǎng)站建設(shè)培訓(xùn)學(xué)校百度首頁推薦關(guān)不掉嗎
  • 手機(jī)網(wǎng)站底部代碼北京seo網(wǎng)站管理
  • 網(wǎng)站開發(fā)z億瑪酷1流量訂制怎么做信息流廣告代理商
  • 海珠區(qū)建網(wǎng)站公司著名的網(wǎng)絡(luò)營銷案例
  • 怎么用模板做網(wǎng)站云南seo
  • 做網(wǎng)站 圖片素材怎么找智能建站系統(tǒng)
  • 醫(yī)院網(wǎng)站建設(shè)預(yù)算表企業(yè)網(wǎng)站制作步驟
  • 珠海營銷型網(wǎng)站建設(shè)百度站內(nèi)搜索的方法
  • 設(shè)置 wap網(wǎng)站seo網(wǎng)站自動發(fā)布外鏈工具
  • 怎么做網(wǎng)站掃描廣告點擊一次多少錢
  • 網(wǎng)站建設(shè)公司的服務(wù)特點網(wǎng)站優(yōu)化方案模板
  • 做電影網(wǎng)站考什么電商平臺推廣費用大概要多少
  • 網(wǎng)站優(yōu)化要從哪些方面做上海seo網(wǎng)站推廣
  • 吉林市做網(wǎng)站的科技公司網(wǎng)絡(luò)推廣常見的方法
  • 純html5網(wǎng)站源碼長沙網(wǎng)站優(yōu)化價格
  • 網(wǎng)站加速cdn自己做互聯(lián)網(wǎng)推廣是什么
  • 怎樣用wordpress建站網(wǎng)絡(luò)銷售是什么工作內(nèi)容
  • 社交平臺推廣方式seo外包方法