設計模式系列(圖文解析,附帶原始碼) - 介面卡
1. 介面卡(Adapter)
Intent
把一個類介面轉換成另一個使用者需要的介面。
Class Diagram
Implementation
鴨子(Duck)和火雞(Turkey)擁有不同的叫聲,Duck 的叫聲呼叫 quack() 方法,而 Turkey 呼叫 gobble() 方法。
要求將 Turkey 的 gobble() 方法適配成 Duck 的 quack() 方法,從而讓火雞冒充鴨子!
public interface Duck {
void quack();
}
public interface Turkey {
void gobble();
}
public class WildTurkey implements Turkey {
@Override
public void gobble() {
System.out.println("gobble!");
}
}
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
turkey.gobble();
}
}
public class Client {
public static void main(String[] args) {
Turkey turkey = new WildTurkey();
Duck duck = new TurkeyAdapter(turkey);
duck.quack();
}
}
JDK
相關文章
- 設計模式系列(圖文解析,附帶原始碼) - 命令設計模式原始碼
- 設計模式系列(圖文解析,附帶原始碼) - 模板方法設計模式原始碼
- 設計模式系列(圖文解析,附帶原始碼)- 空物件設計模式原始碼物件
- 設計模式系列(圖文解析,附帶原始碼) - 生成器設計模式原始碼
- 一文掌握介面卡設計模式,UML圖解原始碼簡單易懂設計模式圖解原始碼
- 【設計模式】介面卡模式以及原始碼應用設計模式原始碼
- 【趣味設計模式系列】之【代理模式3--Cglib動態代理原始碼解析】設計模式CGLib原始碼
- 【趣味設計模式系列】之【代理模式2--JDK動態代理原始碼解析】設計模式JDK原始碼
- Gson原始碼解析和它的設計模式原始碼設計模式
- 設計模式(十)——組合模式(HashMap原始碼解析)設計模式HashMap原始碼
- 設計模式:介面卡模式設計模式
- 設計模式-介面卡模式設計模式
- 設計模式----介面卡模式設計模式
- 【設計模式】介面卡模式設計模式
- 介面卡設計模式設計模式
- Java設計模式之介面卡設計模式Java設計模式
- 設計模式--介面卡模式/代理模式設計模式
- python 設計模式-介面卡模式Python設計模式
- 設計模式之介面卡模式設計模式
- JavaScript 設計模式 —— 介面卡模式JavaScript設計模式
- java設計模式-介面卡模式Java設計模式
- 設計模式(七)介面卡模式設計模式
- 設計模式(五):介面卡模式設計模式
- 設計模式之【介面卡模式】設計模式
- JavaScript設計模式系列二之建造者模式(附案例原始碼)JavaScript設計模式原始碼
- mybatis原始碼解析-日誌介面卡MyBatis原始碼
- 設計模式之介面卡設計模式
- 設計者模式之介面卡模式模式
- PHP設計模式-Adapter 介面卡模式PHP設計模式APT
- python設計模式之介面卡模式Python設計模式
- PHP設計模式(2)—— 介面卡模式PHP設計模式
- Java 設計模式(一)《介面卡模式》Java設計模式
- Javascript 設計模式之介面卡模式JavaScript設計模式
- PHP 設計模式之介面卡模式PHP設計模式
- Java設計模式之介面卡模式Java設計模式
- 設計模式【6.1】-- 初探介面卡模式設計模式
- 極簡設計模式-介面卡模式設計模式
- Java設計模式(6)----------介面卡模式Java設計模式