一、使用Bridge模式的目的:
使用Bridge模式的一個(gè)動(dòng)機(jī)應(yīng)該是:對(duì)象擁有多個(gè)屬性,行為,在不同的時(shí)刻由不同的屬性和行為組合可以表現(xiàn)出不同的外部特征。(即排列、組合形式)
如果對(duì)每一種屬性和行為的組合進(jìn)行綁定,作為一個(gè)子類,那么勢必造成大量的子類存在。而且一旦原有的屬性改變,或者行為改變了,會(huì)導(dǎo)致原有的類需要重新修改編譯。
如果將屬性、行為分開,采用動(dòng)態(tài)組合的方式,在運(yùn)行時(shí)動(dòng)態(tài)決定需要將那個(gè)屬性和那個(gè)行為搭配,除了可以減少子類的數(shù)量之外,還增強(qiáng)了未來的擴(kuò)展性。
二、Bridge模式與Decorator模式的異同:
1).兩者都具有動(dòng)態(tài)設(shè)定、改變類運(yùn)行時(shí)功能的意圖和手法
2).前者著重的是在原有功能基礎(chǔ)上的小修改,并不需要將抽象和行為分開,后者則著重于整體的組合,抽象和實(shí)現(xiàn)分離
三、Bridge模式的特點(diǎn):
·在抽象接口中包含了一個(gè)對(duì)行為接口的引用,這樣的話行為的操作將完全委托給行為接口完成,抽象類無需關(guān)心。
·在抽象類的繼承子類中,調(diào)用了行為類的子類來實(shí)現(xiàn)不同的行為。此時(shí)抽象類的子類中只知道屬性,但不知道具體的行為實(shí)現(xiàn),實(shí)現(xiàn)了概念與行為的分離
·在行為類的繼承子類中,只知道執(zhí)行相應(yīng)的動(dòng)作,但不知道具體的屬性,實(shí)現(xiàn)了行為和概念的分離
四、Bridge模式的實(shí)現(xiàn)圖例:
計(jì)模式/bridge-pattern.jpg)
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2008-02-26 21:48
Paul Lin 閱讀(2083)
評(píng)論(0) 編輯 收藏 所屬分類:
模式與重構(gòu)