天天看點

23種設計模式之擴充卡模式(5)

  • 擴充卡模式(Adapter),将一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不相容而不能一起工作的那些類可以一起工作。
  • 在軟體開發中,也就是系統的資料和行為都正确,但接口不符時,我們應該考慮用擴充卡,目的是使控制範圍外的一個原有對象與某個接口比對。擴充卡模式主要應用于希望複用一些現存的類,但是接口又與複用環境要求不一緻的情況。
  • 在接口不相同時,首先不應該考慮用擴充卡,而是應該考慮通過重構統一接口;在雙方都不太容易修改的時候再使用擴充卡模式适配。
    23種設計模式之擴充卡模式(5)
/**
 * 客戶期待的接口
 * @author yuanyuan.wang
 * @date 2020/9/24
 */
public class Target {
    public void request() {
        System.out.println("普通請求");
    }
}
           
/**
 * 需要适配的類
 * @author yuanyuan.wang
 * @date 2020/9/24
 */
public class Adaptee {
    public void specificRequest() {
        System.out.println("特殊請求");
    }
}
           
/**
 * 通過在内部包裝一個Adaptee對象,将源接口轉換成目标接口
 * @author yuanyuan.wang
 * @date 2020/9/24
 */
public class Adapter extends Target{
    private Adaptee adaptee = new Adaptee();

    @Override public void request() {
        adaptee.specificRequest();
    }
}
           
public class AdapterMain {
    public static void run() {
        Target target = new Adapter();
        target.request();
    }
}
           

繼續閱讀