定義:介面卡模式是把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因為介面不匹配而無法在一起工作的兩個類能夠在一起工作。
分類:類介面卡和物件介面卡。類介面卡是把需要適配的類轉換成目標類。物件介面卡是把需要適配的類組合在介面卡中,表現為被委派的關係。最後還有預設適配模式。
類介面卡的類圖:
類介面卡**示例:
public
class
plane
}
public
inte***ce
ship
//類介面卡
public
class
seaplane
extends
plane
implements
ship
}
public
class
main
}
物件介面卡的類圖:
物件介面卡**示例:
//物件介面卡
public
class
seaplane2
implements
ship
@override
public
void
flow()
public
void
fly()
}
類介面卡和物件介面卡的權衡:
建議盡量使用物件介面卡,多用組合少用繼承。
缺點:
過多的使用介面卡,會讓系統非常零亂,不易整體進行把握。比如,明明看到呼叫的是a介面,其實內部被適配成了b介面的實現,乙個系統如果太多出現這種情況,無異於一場災難。因此如果不是很有必要,可以不使用介面卡,而是直接對系統進行重構。
預設適配模式:
預設適配(default adapter)模式為乙個介面提供預設實現,這樣,子型別可以從這個預設實現進行擴充套件,而不必從原有介面進行擴充套件。
預設適配模式的類圖:
**例項:
public
inte***ce
human
//平庸的實現類
public
class
robot
implements
human
@override
public
void
speak()
@override
public
void
think()
}
public
class
terminator
extends
robot
}
與通常的介面卡不同的是,此介面卡robot給出的所有方法都是「平庸的」,這種「平庸化」的介面卡模式就稱為預設介面卡模式。
介面卡模式的用意是要改變源的介面,以便於目標介面相容。預設適配的用意稍有不同,它是為了方便建立乙個不平庸的介面卡類而提供的一種平庸實現。
在任何時候,如果不準備實現乙個介面的所有方法時,就可以使用「預設適配模式」製造乙個這個介面的實現類,給出所有方法的平庸的具體實現。這樣,從這個類再繼承下去的子類就不必實現所有的方法了。
介面卡模式 Adapter
一句話 什麼是adapter adapter 就是乙個轉換器,比如乙個電源插頭可以讓乙個兩插頭的電器使用牆壁上的三插頭電源。這次的介紹將不寫 雖然設計模式是為了 而生,但我認為這是一種看世界的方法,不僅僅是一種 的設計方式,所以這次的介面卡模式因為比較簡單和容易理解就不再寫 解釋,但介面卡的思想能用...
Adapter 介面卡模式
1.概念 介面卡模式 adapter pattern gof95 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。2.兩種形式 a.類的介面卡模式 b.物件的介面卡模式 3.模擬問題 現在假設我們的程式已經設計了介面request介面,但是...
Adapter介面卡模式
adapter介面卡模式是一種結構型模式,主要應對 由於應用環境的變化,常常需要將 一些現存的物件 放在新的環境中應用,但是,新環境要求的介面是現存物件所不滿足的。設計模式 中說道 將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的類可以一起工作。在實...