橋接模式是一種結構型模式,主要應對的是:由於實際的需要,某個類具有倆個或倆個以上維度的變化,如果只是使用繼承將無法實現這種需求,或者使得設計變得相當臃腫。
舉例來說
1.假設現在我們需要為某個餐廳製造選單,餐廳**牛肉麵、豬肉面,又有口味是否新增辣椒(無辣、微辣等等),假如後面還要新增新的風格呢?如果使用繼承方式,每種都需要實現不同的子類;此時可以採用橋接模式,將變化的部分抽象出來,使變化部分與主類分離,最後提供乙個管理類來組合不同維度上的變化,通過這種組合來滿足業務的需求。
2.假設在一塊畫布上,要畫乙個正方形或菱形或乙個等,或者要拖動或選擇,假如某一天又需要新增在這倆個維度上的動作,也可以採用橋接模式來滿足該需求。
例項**:
1.提供乙個辣椒風格的介面:
public inte***ce peppery
然後實現倆種辣椒風格:
public class pepperysytle implements peppery
}
public class plainstyle implements peppery
}
2.提供乙個麵條的抽象類:
public abstract class abstractnoodle
public abstract void eat();
}
然後實現倆種不同的面:
public class porkynoodle extends abstractnoodle
//實現eat()抽象方法
public void eat()
}
public class beefnoodle extends abstractnoodle
//實現eat()抽象方法
public void eat()
}
測試類:
public class test
}
至此,通過不同的組合,可以實現不同風格的麵條,而辣味介面,也可以使用到其他的菜系裡,實現復用性;
學習筆記 輕量級Java EE 模式 策略模式
策略模式一般用於封裝系列演算法或系情況而定選取某種方式進行處理,通常被封裝在稱為context的類中,客戶端可以自由的選取其中一種演算法或處理方式。場景 正在開發乙個網上書店,需要進行各種 那麼就需要各種打折的計算方法。採用原始方式 public double discount double pri...
Docker學習筆記 輕量級虛擬化
學習筆記,工作需要學習一下docker,學習內容有 建房子軟體帶環境安裝 在一片空地上建房子 在乙個作業系統上配環境 依賴,各種庫,程式 搬家了在另一台機子上配環境 房子映象 裝房子的揹包 倉庫 拿出揹包裡的房子再複製乙個房子 容器 直接拎包入住,不會出現 在我的機器上可以跑,在你的機器上不能跑。解...
輕量級Java EE企業應用實戰(第三版)閱讀筆記
以前看書從來不做筆記,導致當時覺得挺好,理解挺透徹,過一段時間就全部還給作者了。再加上一直以來的,面試的打擊。面試多次每次都悲劇,不是自己做的專案沒亮點,講不清楚,就是對原理性的東西,沒有深入理解,找到最後,越來越沒底氣,越來越沒底線,結果遇到一家不咋的的公司就湊合著去了,結果,幹了一段時間不爽了,...