定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
例子:
手机充电:家里的电源插座都是220V交流电,而手机只能接收5V的直流电,是不能直接使用电源直接充电的。所以就需要用到充电头去将电流转化为手机能用的电流。这里的充电头就是一个适配器。
直接上代码:
/**
* 交流电220V
*/
public class AC220V {
/**
* 输出220v交流电
* @return
*/
public int output220v() {
return 220;
}
}
/**
* 直流5v接口
*/
public interface DC5V {
/**
* 输出5v交流电
* @return
*/
int output5v();
}
/**
* 交流电220v转为直流电5v
*/
public class Power5VAdaptor extends AC220V implements DC5V{
@Override
public int output5v() {
int i = output220v();
//转为直流5v
return (i/44);
}
}
public class Phone {
public static void main(String[] args) {
Power5VAdaptor power5VAdaptor = new Power5VAdaptor();
System.out.println("手机充"+power5VAdaptor.output5v()+"v的电。");
}
}
类图: