介面卡模式 adapter

2021-10-04 02:00:43 字數 1993 閱讀 1427

類介面卡uml

總結介面卡,比如電源介面卡。讓原本不能用的東西,轉換一下,使得他可以適配新的東西;

也就是說比如兩個介面不適配的時候,b系統只能通過b介面去呼叫,a系統只能使用a介面,開發乙個介面卡,外殼還是a介面,但是核心是由b介面實現的,使得a系統能夠呼叫b系統的內容。

在介面卡的兩端,一邊還是2孔,另外一邊是3孔

一般有兩種實現方式:類介面卡,物件介面卡

**定義客戶端

client不是實現,而是依賴target介面,也就是說,client只能使用target介面以及他的子類。

出現另外一套介面標準,client也需要呼叫

但是另外一套介面標準明顯不符合target介面標準時時,引入 介面卡。

package adapter;

public

class

client

public

static

void

main

(string[

] args)

}

定義客戶端使用的介面標準
package adapter;

public

inte***ce

target

定義客戶端原本使用的實現類

但現在不能使用了

package adapter;

//target介面的乙個實現類

public

class

concretetarget

implements

target

}

定義另外乙個介面標準的實現
package adapter;

public

class

adapee

}

通過介面卡解決協調
package adapter;

/** * 定義乙個轉換器

* 一邊滿足兩口

* 另外一邊又可以呼叫三口

* 基於繼承,把三口那邊的東西全部拿過來

* 其實你想, 使用乙個指標指向乙個三口物件好像也可以

你看,是吧,通過只有物件類進行呼叫

上面的例子提到,介面卡通過繼承待適配的類,把待適配的類的成員全部拿過來。但其實通過持有乙個待適配的物件也可以實現功能,不通過繼承。

實現方式與類介面卡實現方式大致相同,只不過將 adapter 從 adaptee 類繼承 改為 adapter 持有 adaptee 類物件。

修改介面卡

package adapter;

/** * 定義乙個轉換器

* 一邊滿足兩口

* 另外一邊又可以呼叫三口

* 基於繼承,把三口那邊的東西全部拿過來

* 其實你想, 使用乙個指標指向乙個三口物件好像也可以

*/public

class

adapter

implements

target

@override

public

void

request()

}

介面卡模式適合於系統整合,擴充套件,介面除錯

== 介面卡嘛,只要介面卡開發得好,大部分系統都可以整合。==

介面卡模式 Adapter

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

Adapter 介面卡模式

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

Adapter介面卡模式

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