设计模式——适配器

88 阅读1分钟

适配器模式是将一个类的接口转换为另一个接口。

例子:一张存储卡上有一些图片,需要将它们传输到您的计算机。要传输图片,需要某种与计算机端口兼容的适配器。在这种情况下,读卡器是一个适配器。 另一个例子是著名的电源适配器。三脚插头不能连接到两脚插座,需要使用与两脚插座兼容的电源适配器。

解释:适配器模式允许您在适配器中包装一个原本不兼容的对象,以使其与另一个类兼容。

考虑一个只能使用划艇而根本不能航行的船长。 首先,我们有 RowingBoat 和 FishingBoat 接口

public interface RowingBoat {
  void row();
}

@Slf4j
public class FishingBoat {
  public void sail() {
    log.info("The fishing boat is sailing");
  }
}

船长希望通过 RowingBoat 接口实现移动

public class Captain {

  private final RowingBoat rowingBoat;
  // default constructor and setter for rowingBoat
  public Captain(RowingBoat rowingBoat) {
    this.rowingBoat = rowingBoat;
  }

  public void row() {
    rowingBoat.row();
  }
}
public class FishingBoatAdapter implements RowingBoat {

  private final FishingBoat boat;

  public FishingBoatAdapter() {
    boat = new FishingBoat();
  }

  @Override
  public void row() {
    boat.sail();
  }
}