中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > 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)換為動(dòng)態(tài)的對(duì)象組合關(guān)系, 使得系統(tǒng)更加靈活,并易于擴(kuò)展, 同時(shí)有效控制了系統(tǒng)中類的個(gè)數(shù)…

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

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

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

舉例:

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

不使用橋接模式的情況:

// 不使用橋接模式的代碼
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}
}

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

使用橋接模式的情況:

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

// 使用橋接模式的代碼
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}
}

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

比如新增一個(gè)顏色后的代碼

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

// 新增的藍(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)或其他顏色類,而是通過新增一個(gè)實(shí)現(xiàn)Color接口的類來添加新的顏色。這就是橋接模式的靈活性體現(xiàn)之處。新增一個(gè)顏色并不會(huì)影響到其他部分的代碼,保持了系統(tǒng)的可擴(kuò)展性。


http://m.risenshineclean.com/news/32351.html

相關(guān)文章:

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