橋接模式(bridge)是結構性模式的一種。結構型模式的核心作用是從程序的結構上實現低耦合,從而可以擴大整體的類結構,用來解決更大的問題。
模式的使用場景
一些多層次分類的結合時,由於Java的但繼承,會出現一些問題。
比如,電腦的分類,有筆記本和臺式機,也可以分爲各種廠商的,比如聯想的,戴爾的,以及其他廠商的。交叉分類後需要繼承的對象就多餘一個,這個時候就需要橋接模式。
橋接模式解決了可擴展性的問題而且遵守了單一職責的原則。
模式實現
//第一個維度的分類
interface Brand{
//第一個維度的方法
void brandname();
}
//第二個維度的分類
class Computer{
//第二個維度的方法
void sale(){
//可以寫一部分具體操作
}
}
//第一個維度的一些實現
class dell implements Brand{
public void brandname() {
//第一維度分配的實現方法
}
}
class Lenovo implements Brand{
public void brandname() {
//第一維度分配的實現方法
}
}
//橋接模式類
class Laptop extends Computer{
//把第一維度的分類組合進來
private Brand brand;
//通過繼承了吧第二維度的分類組合進來
public Laptop(Brand brand){
super();
this.brand = brand;
}
}
public class Client {
public static void main(String[] args) {
//創建對象的時候傳入另一個維度分類的值就可以了。
Computer c = new Laptop(new Lenovo());
c.sale();
}
}
其實這樣組合,可以嵌套第三個,第四個維度,擴展性也不錯
模式核心要點
處理多層繼承機構,處理多維度變化的場景,將各個維度設計獨立的繼承結構,使各個維度的擴展在抽象層建立關聯。
模式在實際開發中的應用
JDBC驅動程序
AWT的Peer結構
銀行日誌管理
人力資源系統中的獎金計算模塊
OA系統中的消息處理