【設計模式】介面卡模式
阿新 • • 發佈:2018-12-25
模式定義
介面卡模式將一個類的介面,轉換成客戶期望的另一個介面。介面卡讓原本介面不相容的類可以合作無間。
下圖是該模式的類圖:
介面卡的作用如下圖所示:
一個生動的例子
目標介面:
public interface Duck {
public void quack();
public void fly();
}
被適配者:
public class WildTurkey implements Turkey {
@Override
public void quack() {
System.out.println("Gobble goggle") ;
}
@Override
public void fly() {
System.out.println("I'm flying a short distance");
}
}
介面卡:
public class DuckAdapter implements Duck {
private Turkey turkey;
public DuckAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
System.out.println("I'm duck." );
turkey.quack();
}
@Override
public void fly() {
System.out.println("I'm duck.");
turkey.fly();
}
}
客戶端:
public class AdapterTest {
public static void main(String[] args) {
Turkey turkey = new WildTurkey();
Duck duckAdapter = new DuckAdapter(turkey);
duckAdapter.quack();
duckAdapter. fly();
}
}
參考
- Head First 設計模式[書籍]