适配器模式
介绍
适配器模式是将一个类的接口转换为客户希望的另一个接口。适配器模式会使得原本由于接口不兼容类能够在一起工作。比如A类希望接受一个String类型的对象,而B类只能提供一个字符数组,这时我们就需要用到适配器将这连个不兼容的接口连接起来让其能正常工作。
角色分类
Target: 目标对象,客户所期待的接口
Adaptee:被适配的对象
Adapter:适配器对象
参考模型
Clinet就是我们USB线,Adapter就是充电器,Adaptee就是插座,Target就是一个接口。
示例
适配者
package com.dy.xidian; /** * 被适配的类 * * @author Administrator * */ public class Adaptee { // 电源插座 public void outlet() { System.out.println("这是电源插座"); } }
适配器
package com.dy.xidian; public class Adapter implements Target { private Adaptee adaptee; @Override public void usb() { adaptee.outlet(); System.out.println("转换为USB接口"); } public Adapter(Adaptee adaptee) { super(); this.adaptee = adaptee; } }
接口
package com.dy.xidian; public interface Target { void usb(); }
测试
package com.dy.xidian; /** * USB线 * * @author Administrator * */ public class Client { public void getPower(Target t) { t.usb(); } public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Target t = new Adapter(adaptee); Client client = new Client(); client.getPower(t); } }
场景应用
经常来做旧系统的改造升级 。
将字节流转化为字符流的适配器
java.io.InputStreamReader(InputStream);
java.io.OutPutStreamWriter(OuputStream);