适配器模式是将一个类的接口转换为另一个接口。
例子:一张存储卡上有一些图片,需要将它们传输到您的计算机。要传输图片,需要某种与计算机端口兼容的适配器。在这种情况下,读卡器是一个适配器。 另一个例子是著名的电源适配器。三脚插头不能连接到两脚插座,需要使用与两脚插座兼容的电源适配器。
解释:适配器模式允许您在适配器中包装一个原本不兼容的对象,以使其与另一个类兼容。
考虑一个只能使用划艇而根本不能航行的船长。 首先,我们有 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();
}
}