設計模式之Adapter模式(介面卡)

2022-02-01 15:55:02 字數 1175 閱讀 6167

1。引言

乙個螺絲和乙個螺絲母,本質上沒有什麼區別,乙個插座和乙個插線板,乙個水龍頭和水管,乙個飲水機和乙個水桶,鎖和鑰匙,這些成對事物的事物本來沒有什麼本質聯絡,在物件導向的角度來說也不存在多的共性,但是又經常成對使用。

如何讓這些不相容的類在一起和諧的工作呢,就需要使用結構性設計模式中的適配模式

2.定義與結構圖

將乙個類的介面轉換成客戶希望的另外乙個介面。

adapter

模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。

結構圖:

3)如何實現

實現介面卡模式有兩種方式,第一種是組合(composition),第二種是繼承(inheritance),一般情況下組合比繼承更加靈活,另外還有個 pluggable adapters ,支援外掛程式的適配模式。這種方式主要利用反射來完成對公有成員的訪問。

4)  介面卡模式在.net的應用

最大應用為 com interop

,com interop是com與.net之間的乙個橋梁,通過它就可以透明的訪問com物件和.net物件,而忽視二者在設計結構上的區別 。

還有dataadapter,這個我們經常使用,它將connection,command,dataset物件組織起來,形成訪問資料的乙個強大工具類。起到了資料庫與dataset之間紐帶與橋梁的作用實現要點(以下引用出在terrylee's tech spaceblog

1.

adapter

模式主要應用於「希望復用一些現存的類,但是介面又與復用環境要求不一致的情況」,在遺留**復用、類庫遷移等方面非常有用。2.

adapter

模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用「多繼承」的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用「物件組合」的方式,更符合松耦合精神。3.

adapter

模式的實現可以非常的靈活,不必拘泥於

gof23

中定義的兩種結構。例如,完全可以將

adapter

模式中的「現存物件」作為新的介面方法引數,來達到適配的目的。4.

adapter

模式本身要求我們盡可能地使用「面向介面的程式設計」風格,這樣才能在後期很方便的適配。

[以上幾點引用自

msdn webcast]

設計模式之Adapter模式

adapter的意圖可以這樣表述 將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使原來由於介面不相容而不能一起工作的類可以一起工作。採用adapter模式是源於這樣的問題 原有系統的資料和行為都正確,但介面不符。通常用於必須從抽象類派生時。其實現方式是將原有類包含在另乙個類中 組合方...

設計模式 之 Adapter

基礎幾何影象物件 如直線 矩形 是很容易實現的,但文字物件就比較複雜了,其中涉及到了文字格式 段落格式 螢幕更新 快取管理等諸多內容。如果此時正好有乙個成熟的文字繪製工具包可供使用,這個工具包中的textview物件提供了完整的文字格式 段落 螢幕及快取管理,實現了textshape物件需要實現的一...

玩轉設計模式之Adapter

玩轉設計模式之 adapter 設計模式很重要,地球人都知道。adapter 介面卡或者叫轉換器,這種模式主要用來將某乙個類的介面轉換成另外乙個類的介面。其實現起來也很簡單,就是新建乙個類,讓其實現所需要的介面,而其實現的過程是完全依賴於原需要被 adapt 的類的。這和我們現實生活中的各類介面卡非...