类适配器

被适配类

  1. @Data
  2. @AllArgsConstructor
  3. class Adaptee {
  4. private int code;
  5. private Boolean success;
  6. private String message;
  7. }

目标接口

  1. interface Target{
  2. void request(int date);
  3. }

适配类

  1. class Adapter extends Adaptee implements Target{
  2. private int date;
  3. public Adapter(int code, Boolean success, String message) {
  4. super(code, success, message);
  5. }
  6. @Override
  7. public void request(int date) {
  8. this.date = date;
  9. System.out.println(super.getCode());
  10. System.out.println(this.getCode());
  11. }
  12. }

测试

  1. public static void main(String[] args) {
  2. Target t2 = new Adapter(200,false,"e");
  3. t2.request(2021);
  4. }
  5. //200
  6. //200

对象适配器

对象适配器与类适配器不同之处在于,类适配器通过继承来完成适配,对象适配器则是通过关联来完成,这里稍微修改一下 Adapter 类即可将转变为对象适配器

  1. public class Adapter implements Target{
  2. // 适配者是对象适配器的一个属性
  3. private Adaptee adaptee = new Adaptee();
  4. @Override
  5. public void request() {
  6. //...
  7. adaptee.adapteeRequest();
  8. //...
  9. }
  10. }