1.定义
适配器模式把一个类的接口换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起。
2.分类
有两种适配器:类的适配器模式,对象的适配器模式
类的适配器模式
public interface DC5 { public int outputDC5V(); } public class AC220 { public int output220(){ int v=220; return v; } } public class MyAdapter extends AC220 implements DC5{ public int outputDC5V() { return output220()/44; } public class Test { public static void main(String[] args) { MyAdapter myAdapter = new MyAdapter(); System.out.println("适配器输出的结果:"+myAdapter.outputDC5V()); } }
优缺点:
优点:由于Adapter继承了Adaptee类,所以它可以根据需求重写Adapter类的方法,使得Adapter的灵活行增强了。
缺点:因为Java单继承的缘故,Target类必须是接口,以便与Adapter并实现了Target,完成适配的功能,但这样就导致了Adapter里暴漏了Adapter类的方法,使用起来的成本就增加了。
对象的适配器模式
public interface DC5 { public int outputDC5V(); } public class AC220 { public int output220(){ int v=220; return v; } } public class MyAdapter implements DC5 { public MyAdapter(AC220 ac220) { this.ac220 = ac220; } private AC220 ac220; public int outputDC5V() { return ac220.output220(); } } public class Test { public static void main(String[] args) { MyAdapter myAdapter = new MyAdapter(new AC220()); System.out.println("适配器输出的电流:"+myAdapter.outputDC5V()); } }