適配器模式的本質:
轉換匹配,複用功能/*
* 已經存在的接口,這個接口需要被適配
*/
package com.impl;
public class Adaptee {
/*
* 示意方法,原本已經存在,已經實現的方法
*/
public void specificRequest(){
System.out.println("要被複用的方法");
}
}
/*
* 定義客戶端使用的接口,與特定領域相關
*/
package com;
public interface Target {
/*
* 示意方法,客戶段請求處理的方法
*/
void request();
}
/*
* 持有需要被適配的接口對象
*/
package com;
import com.impl.Adaptee;
public class Adapter implements Target {
/*
* 持有需要被適配的對象
*/
private Adaptee daptee;
public Adapter(Adaptee daptee){
this.daptee = daptee;
}
@Override
public void request() {
//可能轉調已經實現了的方法,進行適配,可能要幾個方法組合使用
daptee.specificRequest();
}
}
import com.Adapter;
import com.Target;
import com.impl.Adaptee;
public class Client {
public static void main(String[] args) {
//創建需要被適配的對象
Adaptee adaptee = new Adaptee();
//創建客戶端需要調用的接口對象
Target target = new Adapter(adaptee);
//請求處理
target.request();
}
}