介面卡模式:用於解決兩個系統之間的不相容問題,解決兩個介面之間的連線問題;
目標:將乙個類的介面更改為適配另乙個類的介面,並且使這些不相容的類一起工作。
最佳解決方案:兩者實現同乙個介面或者繼承自同乙個抽象類
類圖uml
例項:例如有乙個抽象類player是籃球運動員,該類姓名屬性,具有兩個方法attack(),dfend(),現在中國籃球運動員姚明,調到美國nba,但是他聽不懂教練的語言,只能配翻譯,
翻譯在這個地方就是介面卡
player抽象類
public繼承自player的usaplayerabstract
class
player
public
void
setname(string name)
public
abstract
void
attack();
public
abstract
void
dfend();
}
public現在中國運動員的類class
usaplayer extends player
@override
public
string getname()
@override
public
void
setname(string name)
@override
public
void
attack()
@override
public
void
dfend()
}
public class chinaplayer為了使教練組能夠像呼叫player一樣chinaplayer類public void setname(string name)
public void chinaattack()
public void chinadfend()
}
使用翻譯類
public主程式**class
translater extends player
@override
public
string getname()
@override
public
void
setname(string name)
@override
public
void
attack()
@override
public
void
dfend()
}
public執行效果class
main
}
核心目的,解決兩個不相容的類直接相容的問題。
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...
設計模式之 介面卡模式
1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...
設計模式之介面卡模式
介面卡模式定義 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。簡單定義 封裝物件,並提供不同的介面。簡單例子 鴨子介面 package headfirst.adapter.ducks public inte ce duck 具體鴨子 package headfi...