所谓适配器模式,就是用户将一个已经存在的接口适配成用户所期待的接口,一个适配器通常允许因接口不兼容的类协同工作
适配器有两种实现方式:
基于类的实现方式(机场)
基于对象的实现方式(组合)
适配器的角色构成:
a 目标抽象角色Target
---定义客户要用的特定方法
b 适配器adapter
---调用另一个接口,作为一个转换器
c 适配器adaptee
---使用adapter进行转换的接口
d 客户端
---协同对象符合adapter适配器
现在来使用java代码实现adapter模式
方法1 通过类的继承来实现
定义Target
public interface Target { void doSomething(); }
定义Adaptee
public class Adaptee { public void method() { System.out.println("处理某件事情....."); } }
定义Adapter
public class Adapter extends Adaptee implements Target { @Override public void doSomething() { // TODO Auto-generated method stub this.method(); } }
定义Client
public class Client { public static void main(String[] args) { Target target=new Adapter(); target.doSomething(); } }
方法2 通过对象的组合来实现
定义Target
public interface Target { void doSomething(); }
定义Adaptee
public class Adaptee { public void method() { System.out.println("处理某件事情....."); } }
定义Adapter
public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee=adaptee; } @Override public void doSomething() { // TODO Auto-generated method stub adaptee.method(); } }
定义Client
public class Client { public static void main(String[] args) { Target target=new Adapter(new Adaptee() { @Override public void method() { // TODO Auto-generated method stub super.method(); } }); target.doSomething(); } }