GOF经典设计模式 - Adapter 适配器模式
GOF Design Pattern定义
将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工的那些类可以一起工作。[DP]
类图
代码示例
目标接口、返回值
public interface Target {
TargetResponse show(int id);
}
public class TargetResponse {
private String introduction;
ignore...get/set/toString
}
实际提供服务类、实际返回值
public class Adaptee {
public AdapteeResponse request(Long id) {
if (id == 1L) {
AdapteeResponse adapteeResponse = new AdapteeResponse();
adapteeResponse.setYourName("佩奇");
adapteeResponse.setYourSex("女");
return adapteeResponse;
} else {
return null;
}
}
}
public class AdapteeResponse {
private String yourName;
private String yourSex;
ignore...get/set/toString
}
适配类,实现偷龙转凤,然原本需要入参是long型,返回值是AdapteeResponse的Adaptee类可以为使用Target的客户提供服务
public class Adapter implements Target {
private Adaptee adaptee = new Adaptee();
public TargetResponse show(int id) {
AdapteeResponse response = adaptee.request((long) id);
TargetResponse result = new TargetResponse();
result.setIntroduction("name:" + response.getYourName() + ",sex:" + response.getYourSex());
return result;
}
}
client代码
public class Client {
public static void main(String[] args) {
Target adapter= new Adapter();
TargetResponse show = adapter.show(1);
System.out.println(show);
}
}
应用场景
后续补充....