設計模式-介面型模式-介面卡模式
阿新 • • 發佈:2021-01-27
### 介面卡模式
把一個類的介面轉換成客戶端所期待的另一種介面,從而使原介面不匹配而無法在一起工作的兩個類能在一起工作
功能類似但是介面不同這時就可以使用介面卡,一般情況下在前期第一時間考慮通過重構統一介面。比如在使用第三方開發元件的時候,自己的系統介面與元件介面不同,不用為了迎合去改自己的介面可以使用介面卡模式。
Target類目標介面客戶端可識別,Adaptee需要適配的類,Adapter介面卡類
```JAVA
//類介面卡
class Adaptee{
public void sepcialMethod(){
System.out.println("yyx!");
}
}
interface Target(){
public void normalMethod();
}
class actualTarget implements Target(){
public void normalMethod(){
System.out.println("yyx");
}
}
class Adapter extends Adaptee implements Target(){
public void normalMethod(){
super.sepcialMethod();
}
}
//物件介面卡
class Adapter implements Target(){
private Adaptee adaptee;
public Adapter(Adaptee adaptee){
this.adaptee = adaptee;
}
poublic void normalMethod(){
this.adaptee.sepecialMethod();
}
}
```
JAVAIO中有許多用到了物件介面卡
InputSreamReader是介面卡類 StreamDecoder(傳入InputStream,這個類將InputStream從位元組流變成了字元流)是適配者 Reader是目標類 將InputStream和Reader適配。
StringReader是介面卡類 String是適配者 Reader是目標類 將String和Reader