適配器模式用于消除接口不匹配造成的類兼容性問題
類模式的適配器采用繼承的方式復(fù)用接口
對象模式的適配器采用組合的方式復(fù)用
適配器模式-對象模式
新建適配器优炬,接受原類對象的所有方法,然后生成新需要的接口方法
- 原類對象
/**
* 原類
*/
public class Target {
/**
* 一種邏輯(算法)
* @param str
* @return
*/
public String Arithmetic(String str) {
return str;
}
}
- 適配接口
/**
* 適配接口
*/
public interface IAdapter {
/**
* 適配邏輯(算法)
* @param str
* @return
*/
String Arithmetic_Another(String str);
}
- 適配器
public class Adapter implements IAdapter {
Target tar;
public Adapter(Target filter) {
this.tar = filter;
}
/**
* 原邏輯tar
*
* @param str
* @return
*/
public String Arithmetic(String str) {
return "原邏輯" + this.tar.Arithmetic(str);
}
/**
* 適配邏輯
*
* @param str
* @return
*/
public String Arithmetic_Another(String str) {
return "適配邏輯";
}
}
- 測試
public static void main(String[] args){
Target t = new Target();
IAdapter ia = new Adapter(t);
System.out.println(((Adapter) ia).Arithmetic("……"));
System.out.println(ia.Arithmetic_Another(""));
}
適配器模式-類模式
通過創(chuàng)建類繼承類和實(shí)現(xiàn)接口來實(shí)現(xiàn)適配
- 原類對象
/**
* 原類
*/
public class Target {
/**
* 一種邏輯(算法)
* @param str
* @return
*/
public String Arithmetic(String str) {
return str;
}
}
- 適配接口
/**
* 適配接口
*/
public interface IAdapter {
/**
* 適配邏輯(算法)
* @param str
* @return
*/
public String Arithmetic_Another(String str);
public String Arithmetic(String str);
}
- 適配器
public class Adapter extends Target implements IAdapter {
/**
* 適配邏輯
*
* @param str
* @return
*/
public String Arithmetic_Another(String str) {
return "適配邏輯";
}
}
- 測試
public static void main(String[] args){
IAdapter ia = new Adapter();
System.out.println(ia.Arithmetic("原邏輯……"));
System.out.println(ia.Arithmetic_Another(""));
}