C#設計模式系列適配器模式教程介紹
1. 概述
將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以在一起工作。
2. 解決的問題
即Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以在一起工作。
3. 模式中的角色
3.1 目標接口(Target):客戶所期待的接口。目標可以是具體的或抽象的類,也可以是接口。
3.2 需要適配的類(Adaptee):需要適配的類或適配者類。
3.3 適配器(Adapter):通過包裝一個需要適配的對象,把原接口轉換成目標接口。
4. 模式解讀
注:在GoF的設計模式中,對適配器模式講了兩種類型,類適配器模式和對象適配器模式。由於類適配器模式通過多重繼承對一個接口與另一個接口進行匹配,而C#、java等語言都不支持多重繼承,因而這裏只是介紹對象適配器。
4.1 適配器模式的類圖
4.2 適配器模式的代碼實現
///
public class Target { ///
public virtual void Request() { eLine("This is a common request"); } } ///
public class Adaptee { public void SpecificRequest() { eLine("This is a special request."); } } ///
public class Adapter:Target { // 建立一個私有的Adeptee對象 private Adaptee adaptee = new Adaptee(); ///
public override void Request() { ificRequest(); } }
4.3 客戶端代碼
class Program { static void Main(string[] args) { // 對客戶端來說,調用的就是Target的Request() Target target = new Adapter(); est(); (); } }
運行結果
5. 模式總結
5.1 優點
5.1.1 通過適配器,客戶端可以調用同一接口,因而對客戶端來說是透明的。這樣做更簡單、更直接、更緊湊。
5.1.2 複用了現存的類,解決了現存類和複用環境要求不一致的問題。
5.1.3 將目標類和適配者類解耦,通過引入一個適配器類重用現有的適配者類,而無需修改原有代碼。
5.1.4 一個對象適配器可以把多個不同的適配者類適配到同一個目標,也就是說,同一個適配器可以把適配者類和它的子類都適配到目標接口。
5.2 缺點
對於對象適配器來說,更換適配器的實現過程比較複雜。
5.3 適用場景
5.3.1 系統需要使用現有的.類,而這些類的接口不符合系統的接口。
5.3.2 想要建立一個可以重用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。
5.3.3 兩個類所做的事情相同或相似,但是具有不同接口的時候。
5.3.4 舊的系統開發的類已經實現了一些功能,但是客戶端卻只能以另外接口的形式訪問,但我們不希望手動更改原有類的時候。
5.3.5 使用第三方組件,組件接口定義和自己定義的不同,不希望修改自己的接口,但是要使用第三方組件接口的功能。
6. 適配器應用舉例
6.1 使用過的開發人員應該都用過DataAdapter,它就是用作DataSet和數據源之間的適配器。DataAdapter通過映射Fill和Update來提供這一適配器。
6.2 手機電源適配器
以上就是本文的全部內容,希望能給大家一個參考,也希望大家多多支持。
-
【經典】設計作文7篇
在學習、工作乃至生活中,大家總少不了接觸作文吧,藉助作文人們可以實現文化交流的目的。還是對作文一籌莫展嗎?下面是小編收集整理的設計作文8篇,歡迎大家分享。設計作文篇1教學目標:1、採用扶放結合的方法,進一步培養學生學寫假設類想象作文的能力。2、引導學生展開...
-
實用的設計方案(優秀3篇)
爲了確保工作或事情能有條不紊地開展,常常需要提前準備一份具體、詳細、針對性強的方案,方案是有很強可操作性的書面計劃。優秀的方案都具備一些什麼特點呢?下面是小編收集整理的設計方案3篇,僅供參考,歡迎大家閱讀。設計方案篇1教學目標(一)知道函數圖象的意義;(二)能畫...
-
設計作文6篇[經典]
在學習、工作乃至生活中,大家一定都接觸過作文吧,作文可分爲國小作文、中學作文、大學作文(論文)。你知道作文怎樣寫才規範嗎?以下是小編精心整理的設計作文6篇,僅供參考,大家一起來看看吧。設計作文篇1一、談話導入,引出模式。1、小朋友們,這是什麼?(師在黑板畫一個圓)2、...
-
設計作文9篇【推薦】
在現實生活或工作學習中,大家都寫過作文,肯定對各類作文都很熟悉吧,作文一定要做到主題集中,圍繞同一主題作深入闡述,切忌東拉西扯,主題渙散甚至無主題。那要怎麼寫好作文呢?以下是小編整理的設計作文9篇,希望對大家有所幫助。設計作文篇1昔日裏,外婆的手大而粗糙,但卻如...