所谓适配器模式,就是用户将一个已经存在的接口适配成用户所期待的接口,一个适配器通常允许因接口不兼容的类协同工作
适配器有两种实现方式:
基于类的实现方式(机场)
基于对象的实现方式(组合)
适配器的角色构成:
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();
}
}