适配器模式
<设计模式其实很简单>笔记
将一个类的接口转换成客户希望的另外一个接口。
适配器模式有两种,类适配器模式和对象适配器模式 。 Java是单继承,所以这里只写对象适配器模式
//客户期望的接口
public class Target{
//客户的基本请求
public void Request(){
System.out.println("客户发起了普通基本请求");
}
}
//希望被适配以达到复用目的的类
public class Adaptee{
//客户的特殊请求
public void SpecificRequest(){
System.out.println("客户发起了特殊的请求");
}
}
//适配器类
public class Adapter extends Target{
//包含一个私有的Adaptee对象,所以本类为对象的适配器
private Adaptee adaptee = new Adaptee();
//覆盖Request方法
@Override
public void Request(){
adaptee.SpecificRequest();
}
}
//客户端
public static void main(String[] args){
//客户端的基本请求
Target target = new Target();
target.Request();
//客户的特殊请求,用到被适配的类的方法
target = new Adapter();
target.Request();
}
③何时用
要做的事情是相同的,但接口不同。 (一般在项目的后期维护中用到)