介面卡模式(Adapter)

weixin_34104341發表於2016-05-20
原理:將一個類的介面轉換成客戶希望的另一個介面。介面卡模式讓那些介面不相容的類可以一起工作。
 
角色:目標抽象類(Target): 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。
         適配者類(Adaptee): 需要適配的類或適配者類。
         介面卡類(Adapter): 通過包裝一個需要適配的物件,把原介面轉換成目標介面。
 
實現方式:
類介面卡模式:介面卡類實現目標抽象類介面,並繼承了適配者的類,在介面卡類的request()方法中呼叫所繼承的適配者類中對應的方法。適配者與介面卡是繼承關係。
 
物件介面卡模式:介面卡類繼承了目標抽象類,幷包裝了適配者的例項,適配者與介面卡是關聯關係。
 
 
 
 
public interface Target {
     public void request();
}
public class Adaptee {
     public void specialRequest(){
     System.out.println("this is special request");
     }
}
 
//類介面卡
public class ClassAdapter extends Adaptee implements Target{
     @Override
     public void request() {
          specialRequest();
     }
}
//物件介面卡
public class ObjectApdater implements Target{
     Adaptee adaptee = new Adaptee();
     @Override
     public void request() {
          adaptee.specialRequest();
     }
}
 
 
預設介面卡模式:(單介面介面卡模式)當不需要實現一個介面所提供的所有方法時,可先設計一個抽象類實現該介面,併為介面中的每個方法提供一個預設實現(空方法),那麼抽象類的子類可以有選擇性的覆蓋父類的某些方法來實現需求。它適用於不想使用一個介面中的所有方法的情況。
 
雙向介面卡:介面卡中同時包含對目標類和介面卡類的引用,適配者通過它呼叫目標類中的方法,目標類也可以通過它呼叫介面卡類中的方法。

轉載於:https://www.cnblogs.com/elain/p/4314397.html

相關文章