日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式之结构型(4)-桥接模式(Bridge)

發布時間:2025/5/22 asp.net 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式之结构型(4)-桥接模式(Bridge) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一)定義:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。(將一個對象多維度的變化分離)

① 橋接模式主要用意是為了實現抽象部分與實現部分脫耦,使它們各自可以獨立變化。
② 在開發過程中通常會遇到一個對象有兩個變化維度,而且這兩個維度變化地非常劇烈,這種變化導致了縱橫交錯的結果,使對象的設計變得困難,并且在對象數量上和可擴展性上都帶來了很大的麻煩。此時我們應當把這兩個變化比較劇烈的維度拆離,然后用組合的方式把它們結合在一起。這就是橋接器模式的思想
相關模式:適配器模式,策略模式

1.1 UML定義類圖

1.2 類的定義

示例

場景一:假設用蠟筆畫一幅畫。要使用12種顏色,且有大中小號蠟筆來畫,則需要36種不同的蠟筆。但是如果我們用大中小三種不同的毛筆,再配上12種不同的顏色。則只需要12+3=15個對象就可以完成繪畫。
? 實際上,蠟筆和毛筆的關鍵一個區別在于筆和顏色是否能夠分離。橋梁模式的用意是“將抽象化與實現化脫耦,使得二者可以獨立地變化”。關鍵就在于能否脫耦。蠟筆的顏色和蠟筆本身是分不開的,所以造成必須使用36支色彩、大小各異的蠟筆來繪制圖畫。而毛筆與顏料能夠很好的脫耦,各自獨立變化,便簡化了操作。在這里,抽象層面的概念是:“毛筆用顏料作畫”,而在實現時,毛筆有大中小三號,顏料有紅綠藍等12種,于是便可出現3*12種組合。每個參與者(毛筆與顏料)都可以在自己的自由度上隨意轉換。
? 蠟筆由于無法將筆與顏色分離,造成筆與顏色兩個自由度無法單獨變化,使得只有創建36種對象才能完成任務。橋接模式將繼承關系轉換為組合關系,從而降低了系統間的耦合,減少了代碼編寫量。

代碼public abstract class Brush {protected Color c;public abstract void Paint();public Color Color{set { c = value; }} }public class BigBrush : Brush {public override void Paint(){Console.WriteLine("使用大號毛筆和顏色:{0} 繪畫", c.Name);} }public class SmallBrush : Brush {public override void Paint(){Console.WriteLine("使用小號毛筆和顏色:{0} 繪畫", c.Name);} } public class Color {public string Name { get; set; } }public class Red : Color {public Red(){base.Name = "Red";} }public class Blue : Color {public Blue(){base.Name = "Blue";} }//Main客戶端調用程序 static void Main(string[] args) {Brush brush1 = new BigBrush();brush1.Color = new Red();brush1.Paint();Brush brush2 = new SmallBrush();brush2.Color = new Blue();brush2.Paint();Console.ReadKey(); }

轉載于:https://www.cnblogs.com/lihuali/p/7492940.html

總結

以上是生活随笔為你收集整理的设计模式之结构型(4)-桥接模式(Bridge)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。