介面卡模式(Adapter)

2022-08-27 21:57:13 字數 1021 閱讀 1043

(參考design pattern gof和設計模式之禪)

一:目標(用途)

將乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。

二:使用情況

有兩個相互獨立的類a和類b, 客戶端原本使用類a,現在因為某些原因需要使用類b的介面。為了不破壞原來就能正常工作的系統,打算不修改或者盡量少的修改客戶端,也不修改類a和類b,而是新增乙個介面卡將類b的介面包裝成或者偽裝成類a的介面。這樣對於原來的系統來說呼叫介面卡還是和原來呼叫類a介面一樣,但是介面卡工作時真正呼叫的是類b的介面。

結構圖:

從結構圖可以看到,adapter同時實現了target和adaptee的介面,client 呼叫target 的 request介面, target呼叫adapter的request介面,而adapter最終真正工作的是adaptee的specificrequest介面。client和target兩個角色的組合原本就是乙個正常的完整系統,為了要呼叫adaptee的介面而新增adapter角色。

三:角色

介面卡模式最主要的角色當然是adapter,這裡借用《設計模式之禪》的圖例說明什麼是介面卡,為什麼需要介面卡。

物體a和物體b的介面不一致, 物體c有兩個介面分別和a和b對接上,加入乙個物體c後三個物體都可以完美地對接在一起。

四:介面卡模式和裝飾模式的區別

介面卡模式 Adapter

一句話 什麼是adapter adapter 就是乙個轉換器,比如乙個電源插頭可以讓乙個兩插頭的電器使用牆壁上的三插頭電源。這次的介紹將不寫 雖然設計模式是為了 而生,但我認為這是一種看世界的方法,不僅僅是一種 的設計方式,所以這次的介面卡模式因為比較簡單和容易理解就不再寫 解釋,但介面卡的思想能用...

Adapter 介面卡模式

1.概念 介面卡模式 adapter pattern gof95 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。2.兩種形式 a.類的介面卡模式 b.物件的介面卡模式 3.模擬問題 現在假設我們的程式已經設計了介面request介面,但是...

Adapter介面卡模式

adapter介面卡模式是一種結構型模式,主要應對 由於應用環境的變化,常常需要將 一些現存的物件 放在新的環境中應用,但是,新環境要求的介面是現存物件所不滿足的。設計模式 中說道 將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的類可以一起工作。在實...