设计模式之Adapter模式
Adapter Pattern
描述:提供一种解决方案,使不兼容的接口间能够互相协调工作,而不需要对已有接口进行修改。与之相关的设计模式:Bridge Pattern, Decorator Pattern?? ?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发挥作用的场景:?? ? ? ? ?1、在实际开发过程中经常需要利用一些已经写好的类,但是这些已经写好的类还不能完全符合调用接口的要求,写一个Adapter作为二者之间的转化就可以发挥Adpater Pattern的作用。关键的是不用重新开发新代码或拷贝出冗余的代码出来,用Adapter类做一个转化即可。就像所谓的12V电压升压为24V一样。?? ? ? ? ? 2、Adapter Pattern并不只能用到有自己开发的接口上,也能用到别人开发的接口上,只要知道这些接口的规范即可。?? ? ? ? ? 3、Adapter Pattern的另一个用武之地就是在解决版本更新和兼容问题上。可以保证新旧版本共存的前提下对新版本进行维护升级。?