設計模式之 橋接模式

2022-08-05 19:03:17 字數 698 閱讀 3690

橋接(bridge)是用於把抽象化與實現化解耦,使得二者可以獨立變化。

這種型別的設計模式屬於結構型模式,它通過提供抽象化和實現化之間的橋接結構,來實現二者的解耦。

簡單點說,就是處理 包含 與 被包含 兩部分的解耦關係(「包含」說得也不是很準確,暫時想不到合適的詞,就先用這個詞),就像 手機和手機上的軟體、咖啡杯和咖啡杯裡的咖啡、影象和影象染的顏色  一樣 。

舉個例子:

咖啡店營業,選單裡面有 摩卡、拿鐵、卡布奇諾  三種咖啡,每種都對應有 大、中、小 三種規格。

為了滿足客人的各種需求,該怎麼把杯子的大小和咖啡的種類聯絡在一起呢?大杯摩卡、中杯摩卡、小杯摩卡、大杯拿鐵...

如果把 杯子規格和咖啡種類 綁死在一起,三種咖啡豆都有自己特有的規格,那就要準備 3*3=9 種杯子了。

看到這裡,你可能會覺得這種做法很笨,不會有人這麼做。因為這個例子很簡單,生活中一般不會有人這麼做,這都成為了一種常識。那你們可以想一下其他例子---蠟筆和畫筆的對比(蠟筆就是把規格和顏色繫結死了的,但畫筆是分離開的)

其實我們都知道正確的做法是,只要 準備三種規格的杯子 就想行了,不同需求再倒入不同的咖啡。這個時候,咖啡杯的規格和具體的咖啡就分隔開了,彼此的改變都不會影響到對方。這個就是用到了橋接模式。

因為 該模式的類圖 就像 一座橋 ,所以稱為 「橋接模式」 。(小編比較懶,後面再補上類圖)

共同學習,共同進步,若有補充,歡迎指出,謝謝!

設計模式之橋接模式

public class test 兩個維度 乙個是具體產品,如狗 豬 乙個是抽象產品,如溫順的動物 冷酷的動物 排列組合 如溫順的狗 冷酷的豬等 abstract class animal 該橋接類的引入是關鍵 abstract class animalbridge extends animal ...

設計模式之 橋接模式

今天來學習橋接模式,在我們日常生活中,有很多的事物是可以 多維度 的變化的,比如我們去吃麵條,有雞絲面和牛肉麵兩種,每一種面又分為辣味的和不辣的,而且每種面可能會分為大碗小碗的。很多事物能夠變化的維度不止一種,甚至數十種,那麼我們在 上怎麼應對這些變化呢?每乙個都單獨弄乙個類顯然不是什麼好辦法。那麼...

設計模式之橋接模式

在軟體系統中,某些型別由於自身的邏輯,它具有兩個或多個維度的變化,那麼如何應對這種 多維度的變化 如何利用物件導向的技術來使得該型別能夠輕鬆的沿著多個方向進行變化,而又不引入額外的複雜度?這就要使用橋接模式。現在有咖啡,按大小分可以分為中杯和大杯,按型別可以分為拿鐵和摩卡,所以現在總共有四中咖啡,中...