适配器模式【java版】

使用场景: 接口转换

一、对象适配器优先选用

优选的原因:多用聚合,少用继承

原始接口类:

public class Adaptee {

public void standardRequest(){

System.out.println("这是原始标准接口!");

}
}

目标接口:

public interface Target {

public void newRequest();

}

适配器类:

//聚合的方式,适配器类中“原始接口对象”作为其成员对象
public class Adapter implements Target {

public Adapter(Adaptee apt){
this.apt=apt;
}

//实现新接口中的方法
public void newRequest() {
System.out.println("调用老接口之前进行一些预处理");
this.apt.standardRequest();//开始调用老接口

}

private Adaptee apt=null;

}

测试:

public class Main {

public static void main(String[] args) {
System.out.println("测试对象适配器。。。");

//创建“原始接口类对象”和“适配器对象”
Adaptee theAdaptee=new Adaptee();
Target theTarget=new Adapter(theAdaptee);

//调用新接口
theTarget.newRequest();
}

}

运行结果:

 

二、类适配器

原始接口类:

public class Adaptee {

public void standardRequest(){

System.out.println("这是原始标准接口!");

}
}

目标接口:

public interface Target {

public void newRequest();

}

适配器类:

//继承的方式,“原始接口类”中的方法通过继承得到,并在新接口的方法中被调用
public class Adapter extends Adaptee implements Target {

//实现新接口中的方法
public void newRequest() {
System.out.println("调用老接口之前进行一些预处理");
super.standardRequest();
}

}

测试:

public class Main {

public static void main(String[] args) {
System.out.println("测试类适配器");

//创建适配器对象
Target theTarget=new Adapter();

//调用新接口
theTarget.newRequest();

}

}

运行结果:



posted @ 2011-12-20 01:28  edisonfeng  阅读(579)  评论(0编辑  收藏  举报