在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配容许一般由于接口不兼容而不能在一块儿工做的类工做在一块儿,作法是将类本身的接口包裹在一个已存在的类中。
共有两类适配器模式:编程
对象适配器模式设计模式
类适配器模式微信
模型:iphone
代码演示(类适配器模式):ide
1.AbstractTarget:抽象目标角色函数
public interface AbstractTarget { //抽象目标角色方法 public void target(); }
2.具体的目标角色spa
public class Target implements AbstractTarget { @Override public void target() { Log.d("qzs","实现目标方法"); } }
3.初始角色Adaptee:设计
public class Adaptee { //初始的方法 public void adaptee(){ Log.d("qzs","初始的逻辑"); } }
4.适配器角色:code
public class Adapter extends Adaptee implements AbstractTarget { @Override public void target() { adaptee(); } }
5.调用对象
AbstractTarget tr=new Adapter(); tr.target();
例如,我手中有Android数据线和iphone手机,我想用安卓数据线给iphone手机充电。此时:
代码演示:
1.Android数据线:
public class AndroidLine { public void charge(){ Log.d("qzs","Android数据线给Android手机充电"); } }
2.目标角色:
public interface AbstractIphone { public void target(); }
3.数据线转换器
public class PhoneLineAdapter extends AndroidLine implements AbstractIphone { @Override public void target() { super.charge(); Log.d("qzs","可是我能够经过数据线转换器来给iphone手机充电"); } }
4.调用
AbstractIphone tr1=new PhoneLineAdapter(); tr1.target();
运行:
1.优势
2.注意:
当初始角色的接口和实现类为多个时,咱们在写适配器不能用继承的方式。能够经过在适配器中构造函数的方法来传递对象从而实现数据处理,也就是对象适配器模式。
文章参考了网上信息以及《设计模式之禅》
另外能够加入个人Android技术交流群:458739310
你们能够关注个人微信公众号:「安卓干货铺」一个有质量、有态度的公众号!