将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
比如:现在有个手机要充电,手机是5v的接口,我要用电源是220v的PowerA接口去充电,即调用Power的方法charge(),然而charge(){System.out.println("220V电源")}只提供220V电源,
而我们还有个5v的PowerB接口:有方法charge({System.out.println("5V电源")})
假如这段代码已经写好了我就是要用PowerA这个接口去充电或者现在只有这个PowerA接口:PowerA p=...
p.charge();
但是又不匹配怎么办呢?
这时我们可用个适配器Adapter去继承PowerA,重写其中的charge()方法,使其调用已有的5V PowerB接口中的charge()方法:
private PowerB powerb;//实例Adapter时就实例它
charge(){
powerb.charge();
}
这样我们就可以用原来接口PowerA 了:
PowerA p=newAdapter();
p.charge();
所以这个适配器就能让我们使用已有的类PowerB,又可用原来的接口PowerA。其实将一些现实情况结合模式去想更令我们清楚如何解决实际问题。