台灣最大程式設計社群網站
線上人數
1106
 
會員總數:245214
討論主題:189087
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> C#的 Adapter 用法教學
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C#的 Adapter 用法教學
價值 : 0 QP  點閱數:1185 回應數:0

樓主

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

在軟體系統中,需要將一些現存的物件放在新的環境中應用,但是新環境要求的介面是這些現存物件所不滿足的,就如同介面轉換器。將一個類別的介面轉換成客戶希望的另外一個介面,這就是本文的Adapter 模組重點。Adapter模式讓原本介面不相容而不能一起運作的那些類別可以一起運作。讓我們看以下實例

用一個介面存放方法:

物件介面轉換器(Adapter與Adaptee組合的關係) ,IStack,是轉換的對象,adaptee被轉換的對象:

介面轉換器的結構呈現:


Adapter模式的幾個要點:
1.Adapter模式主要應用於希望複用一些現存的類別,但是介面又與複用環境要求不一致的情況。
2.GOF23定義了兩種Adapter模式的實現結構:對象轉換器和類轉換器。物件轉換器採用物件組合的方式,但類轉換器採用多繼承的實現方式。
3.Adapter模式可以實現的非常靈活,不必拘泥於GOF23中定義的兩種結構。

.NET Framewokr中的Adapter應用:
(1)在.Net中複用com對象:
com 物件不符合.net物件的介面
使用tlbimp.exe來創建一個Runtime Callable Wrapper(RCW)以使其符合.net物件的介面。
(2).NET資料訪問類(Adapter變體):
各種資料庫並沒有提供DataSet介面
使用DBDataAdapter可以將任何各資料庫訪問/存取適配到一個DataSet物件上。
(3)集合類別中對現有物件的排序(Adapter變體);
現有物件未實現IComparable介面

實現一個排序轉換器(繼承IComparer介面),然後在其Compare方法中對兩個物件進行比較。

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

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