介绍:
是将两个不兼容的类融合在一起,有点像粘合剂,将不同的东西通过一种转换使得他们能够协作起来。
定义:
把一个类的接口变成客户端所期待的另一种接口,从而使原本因借口不匹配而无法在一起工作的两个类能过在一起工作。
使用场景:
1、系统需要使用现有的类,而此类的借口不符合系统的兼容,接口不兼容;
2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作;
3、需要一个统一的输出接口,而输入端的类型不可预知。
UML类图:
代码:
类适配器模式
FiveVolt.java
public interface FiveVolt {
public int getVolt5();
}
VoltAdapter.java
public class VoltAdapter extends Volt220 implements FiveVolt{
@Override
public int getVolt5(){
return 5;
}
}
Volt220.java
public class Volt220 {
public int getVolt220(){
return 220;
}
}
Client.java
public class Client {
public static void main(String[] args){
VoltAdapter adapter=new VoltAdapter();
System.out.println("输出电压:"+adapter.getVolt5());
}
}
对象适配器模式
VoltAdapter.java
public class VoltAdapter extends Volt220 implements FiveVolt{
Volt220 mVolt220;
public VoltAdapter(Volt220 adaptee){
mVolt220=adaptee;
}
public int getVolt220(){
return mVolt220.getVolt220();
}
@Override
public int getVolt5(){
return 5;
}
}
运行结果: