适配器模式:将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。
系统的数据与行为正确,但接口不符合时,我们应该考虑适配器模式,目的是使控制范围之外的一个原本对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境要求不一样的情况。
生活中的例子:
在现实生活中,像这种适配器我们经常见到,而且还是经常使用它,如:手机(深信大家都见过),我们手机在充电的时候,不可能直接在220V电源上直接充电,而是手机“充电器”进行转换成手机需要的电压才可以正常充电,否则就不可以完成充电,这个“充电器”就起到了适配的作用。
适配器分两种:类适配器 与 对象适配器 ,由于类适配器需要通过多重继承来实现,这里讲得主要是对象适配器。
public abstract class Target { public abstract void request(); }
public class Nomal extends Target { @Override public void request() { System.out.println("Nomal Request ! "); } }
public class Adaptee { public void specificRequest() { System.out.println("Specific Request ! "); } }
public class Adapter extends Target{ private Adaptee adaptee = new Adaptee(); @Override public void request() { //这样就可以把表面上调用Request的方法变成实际调用的SpecificRequest。 adaptee.specificRequest(); } }
public static void main(String[] args) { Target t1 = new Nomal(); t1.request(); Target t2 = new Adapter(); t2.request(); }
打印结果:
Nomal Request !
Specific Request !