1. 程式人生 > >設計模式-介面型模式-介面卡模式

設計模式-介面型模式-介面卡模式

### 介面卡模式 把一個類的介面轉換成客戶端所期待的另一種介面,從而使原介面不匹配而無法在一起工作的兩個類能在一起工作 功能類似但是介面不同這時就可以使用介面卡,一般情況下在前期第一時間考慮通過重構統一介面。比如在使用第三方開發元件的時候,自己的系統介面與元件介面不同,不用為了迎合去改自己的介面可以使用介面卡模式。 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