橋接模式是一種結構型的設計模式,主要是特點是將抽象部分與實現部分分離開來,從而能夠進行獨自的變化。在橋接模式中,所謂的橋,個人理解是在抽象層中,將介面聯絡到乙個抽象類中,更確切的說,是依賴關係。橋接模式主要適用場景是,某個物件需要從兩個或者多個(一般是兩個)維度進行描述或者操作的時候,能夠簡潔的進行處理。
特點:抽象與實現分離。抽象層依賴,具有非常好的擴充套件性。
適用場景:當場景中某個事物需要從兩個或者多個維度進行描述或者操作。
舉乙個在飯店(抽象類)吃飯(動作介面)的例子。我們可以選擇在香格里拉(具體類)吃飯,也可以在希爾頓(具體類)吃飯。兩個酒店都可以提供烤肉(吃烤肉,動作介面實現類)和沙拉(吃沙拉,動作介面實現類)。我們的操作或者描述的問題,就是在什麼酒店吃什麼的問題。很顯然,這是乙個2維度的選擇組合的動作,那麼就可以通過橋接模式的思路來進行實現。
對應的uml類圖如下:
1)吃飯介面
public
inte***ce
eatfood
2)吃飯實現類
public
class
eatmeat
implements
eatfood
}
public
class
eatsalad
implements
eatfood
}
3)餐廳抽象類
public
abstract
class
restaurant
public
abstract
string
action
();}
4)餐廳實體類
public
class
shangrila
extends
restaurant
@override
public
string
action
()}
public
class
healton
extends
restaurant
@override
public
string
action
()}
5)驗證程式
/**
* 驗證
*/public
class
demo
}
在香格里拉酒店吃烤肉上文講到,橋接模式的適用場景是需要從兩個或者多個維度去描述或者操作事物。而抽象工廠模式也與「多個維度」相關。這兩種模式的適用場景都是涉及多維度的。但是是存在區別的,抽象工廠模式更關注物件的建立,是建立型設計模式。而橋接模式則是關注物件建立之後的動作或者功能。所以兩者的區別是比較明顯的。在希爾頓酒店吃沙拉
橋接模式的特點是將抽象與實現分離,在抽象層建立依賴關係,從而兩個維度上的實現類可以進行各自的變化不會相互影響,具有非常好的擴充套件性。
java 設計模式之橋接模式
今天看了下設計模式中的橋接模式,發現還是很有趣味的,筆記之。舉個例子,比如gg要約會mm,不同的mm喜歡喜歡不同的地點,比如rose喜歡去電影院,kitty喜歡去西餐廳,而tom,peter 都是gg,他們要分別去約會這兩位mm了,而約會的地點,全部由mm決定 首先是mm介面 package com...
設計模式 橋接模式
橋接模式 多維 如車行駛在路上。車分各種品牌 各種型號各種排氣 道路分街道 告訴 山地等 駕駛員分男女 為了減少類的數量。如果按照繼承實現會照成大量冗餘的類,類的數量會相當之大 package com.cn.duduyu.bridgepattern.car public abstract class...
設計模式 橋接模式
設計模式 橋接模式 橋接模式 bridge pattern 對應英文名稱可以是bridge或者bradge任意一種都可以。在軟體系統中,某些型別由於自身的邏輯,它具有兩個或多個維度的變化,那麼如何應對這種 多維度的變化 如何利用物件導向的技術來使得該型別能夠輕鬆的沿著多個方向進行變化,而又不引入額外...