Adapter Pattern
- 描述:提供一种解决方案,使不兼容的接口间能够互相协调工作,而不需要对已有接口进行修改。
- 与之相关的设计模式:Bridge Pattern, Decorator Pattern
- 采用继承的方式实现Adapter Pattern:
Adapter Pattern对应的类图:
在实现过程中,Adapter的作用在以下的Java代码中可以得到体现:
//Main
public static void main(String[] args)
{
XyzInterface xyz = new Adapter("xyz");
xyz.action();
}
//XyzInterface.java
public interface XyzInterface()
{
public void action(String arg);
}
//Adapter.java
public class Adapter extends ActionEntity implements XyzInterface()
{
public void action(String arg)
{
return this.entityAction(arg);
}
}
//ActionEntity.java
public class ActionEntity
{
public String entityAction(String arg)
{
return "<"+arg+">";
}
}
- 采用聚合的方式实现Adapter Pattern:
Adapter Pattern对应的类图:

在实现过程中,Adapter的作用在以下的Java代码中可以得到体现:
public static void main(String[] args)
{
XyzInterface xyz = new Adapter("xyz");
xyz.action();
}
//XyzInterface.java
public interface XyzInterface()
{
public void action(String arg);
}
//Adapter.java
public class Adapter implements XyzInterface()
{
private ActionEntity actionEntity;
public Adapter()
{
actionEntity = new ActionEntity();
}
public void action(String arg)
{
return actionEntity.entityAction(arg);
}
}
//ActionEntity.java
public class ActionEntity
{
public String entityAction(String arg)
{
return "<"+arg+">";
}
}
- Adapter Pattern发挥作用的场景:
2、Adapter Pattern并不只能用到有自己开发的接口上,也能用到别人开发的接口上,只要知道这些接口的规范即可。
3、Adapter Pattern的另一个用武之地就是在解决版本更新和兼容问题上。可以保证新旧版本共存的前提下对新版本进行维护升级。