GOF23-橋接模式

一、橋接模式

定義:將抽象化和實現化脫耦,使得二者可以可以獨立的變化。

其中有三個關鍵字抽象化、實現化、脫耦。

  • 抽象化:一組對象能夠有相同的概念聯繫,那麼我們可以使用一個類來描述,如果一些類具有相同的概念聯繫,那麼我們可以使用一個抽象類來描述這就是抽象化,如果更復雜我們可以使用繼承用父子來描述。
  • 實現化:一個類的實例就是這個類的實現化,也是這個類的父類的實現化。
  • 脫耦:強耦合在編譯時就確定,弱耦合可以在運行時動態改變關聯。在Java中繼承是強關聯,聚合是弱關聯。

二、傳統繼承模式與橋接模式

當一個類存在兩個維度的變化並且衍生出不同的類,比如車這個主體有引擎並且,車會有公交車、轎車、跑車等等、引擎有燒油、用電、用氣的。

1.傳統繼承模式

當需要不同類型的汽車時繼承方式會產生類似笛卡爾積數量的類。當要新增一種類型的車時,需要對引擎進行修改對維護和擴張都不利。

2.橋接模式

UML類圖

此模式基本機構爲兩層抽象化角色(Car、Engine)和修正抽象化角色(Saloon、Bus、GasonlineEngine)。而Car和Engine存在組合的關係。

這個模式主要是理解概念,代碼都很簡單。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章