台灣最大程式設計社群網站
線上人數
826
 
會員總數:245221
討論主題:189091
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> C# Design Pattern - Bridge模式介紹
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# Design Pattern - Bridge模式介紹
價值 : 0 QP  點閱數:788 回應數:0

樓主

E-Troy 版主
初學者
80 52
283 11
發送站內信

在軟體系統中,某些類型由於自身的邏輯,它具有兩個或多個維度的變化,開發者可以將抽象部分與實現部分分離,使它們都可以獨立的變化。

如同蠟筆一樣。紅紅綠綠的蠟筆一大盒,可以根據想像描繪出格式圖樣。但想要繪製一幅圖畫,藍天、白雲、綠樹、小鳥,如果畫面尺寸很大,那麼用蠟筆繪製就會遇到點麻煩。最好有粗粗的蠟筆很快能塗抹完成。如果一套12種顏色的蠟筆,我們需要兩套 24支,為了一幅畫,我們需要準備24支型號不同的蠟筆。
但是用毛筆就不同了,一套水彩12色,外加大小二支毛筆,畫藍天用大毛筆,畫小鳥用小毛筆,各具特色。

所以呢,Bridge模式,就是通過Bridge模式,我們把乘法運算2×12=24改為了加法運算2+12=14。然後如同蠟筆和毛筆的特色一般,將抽象化 (Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化。
蠟筆的顏色就是蠟筆的本身,但毛筆與顏料能夠脫耦而各別獨立,各自獨立變化,便簡化了操作。
蠟筆由於無法將筆與顏色分離,造成筆與顏色兩個自由度無法單獨變化,使得必須要有24種筆色才能完成任務。Bridge模式將繼承關係轉換為組合關係,從而降低了系統間的耦合,減少了程式碼編程。


建立二個類別,分別是大刷子和小刷子

建立三種不同顏色類別


不同大小的毛筆可以產生相同而不同的顏色,然後各別達到不同的功效


Bridge模式使用物件間的組合關係,解耦了抽象和實現之間固有的綁定關係,使得抽象和實現可以沿著自身的維度來變化。Bridge模式較類似多繼承,但是多繼承往往違背了類別的單一職責原則,複用性比較差。Bridge模式是比多繼承更好的解決方法,所以應用一般在兩個非常強的變化維度。

搜尋相關Tags的文章: [ Bridge ] , [ C# ] ,
本篇文章發表於2015-09-23 11:41
== 簽名檔 ==
上帝的藝術-電腦神手的領域 - http://etroy.pixnet.net/blog
上帝的藝術-微軟的神域 - http://etroy-com.blogspot.tw/
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.