用途
適配器模式是一種
結構型模式。
結構
圖-適配器模式結構圖
Target : 定義用戶實際需要的接口。
abstract
class Target {
public abstract void Request();
}
public abstract void Request();
}
Adaptee : 定義一個需要適配的接口。
class Adaptee {
public void SpecificRequest() {
System.out.println("特殊請求");
}
}
public void SpecificRequest() {
System.out.println("特殊請求");
}
}
Adapter : 通過在內部包裝一個 Adaptee 對象,把源接口轉換成目標接口。
class Adapter
extends Target {
private Adaptee adaptee = new Adaptee();
@Override
public void Request() {
adaptee.SpecificRequest();
}
}
private Adaptee adaptee = new Adaptee();
@Override
public void Request() {
adaptee.SpecificRequest();
}
}
測試代碼
public
class AdapterPattern {
public static void main(String[] args) {
Target target = new Adapter();
target.Request();
}
}
public static void main(String[] args) {
Target target = new Adapter();
target.Request();
}
}
運行結果
特殊請求
應用場景
想要使用一個已經存在的類,但如果它的方法不滿足需求時;
兩個類的職責相同或相似,但是具有不同的接口時要使用它;
應該在雙方都不太容易修改的時候再使用適配器模式適配,而不是一有不同時就使用它。