HeadFirst中的定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能在一起 工作的类可以在一起工作。
目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类也可以是接口。
需要适配的类(Adaptee):需要适配的类或适配者类。
适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标对象。
使用场景:旧系统的改造和升级。
JavaIO中的转换流:java.io.InputStreamReader(InputStream)
java.io.OutputStreamReader(OutputStream)
Demo:
public class Adaptee { public void request() { System.out.println("满足了客户端的需求"); } } public interface Target { void handleReq(); } public class Adapter implements Target { Adaptee adaptee = new Adaptee(); @Override public void handleReq() { adaptee.request(); } public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } } public class Client { public void linkReq(Target target) { target.handleReq(); } public static void main(String[] args) { Adaptee adaptee = new Adaptee(); //客户需要的,被适配的对象 Target adapter = new Adapter(adaptee);//被适配的对象与适配器耦合 Client client = new Client(); client.linkReq(adapter);//客户端与适配器的接口耦合 } }