Java学设计模式之适配器模式

一、适配器模式概念

1.1 什么是适配器模式

适配器模式是一种结构型设计模式,它提供了一种将不兼容的接口转化为兼容的接口的方式,从而使原本无法一起工作的类可以协同工作。适配器模式可以分为两种:对象适配器和类适配器。

1.2 对象适配器

对象适配器通过组合的方式,将不兼容的接口适配为所需的接口。这种方式通常使用一个适配器类来组合目标接口和现有接口,并将现有接口的方法转换为目标接口的方法。

1.3 类适配器

类适配器通过继承的方式,将不兼容的接口适配为所需的接口。这种方式通常使用多重继承(在 Java 中是继承类并实现接口)来实现适配。

二、对象适配器模式代码

2.1 目标接口

public interface Target {
void request();
}

2.2 源接口

public class Adaptee {
public void specificRequest() {
System.out.println("Adaptee specificRequest");
}
}

2.3 适配器

public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
// 将目标接口的 request 方法转换为源接口的 specificRequest 方法
adaptee.specificRequest();
}
}

2.4 测试类

public class AdapterPatternTest {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
// 调用目标接口的方法
target.request();
// 输出:Adaptee specificRequest
}
}

三、类适配器模式代码

3.1 目标接口

public interface Target {
void request();
}

3.2 源接口

public class Adaptee {
public void specificRequest() {
System.out.println("Adaptee specificRequest");
}
}

3.3 适配器

public class Adapter extends Adaptee implements Target {
@Override
public void request() {
super.specificRequest();
}
}

3.4 测试类

public class AdapterPatternTest {
public static void main(String[] args) {
Target target = new Adapter();
// 调用目标接口的方法
target.request();
// 输出:Adaptee specificRequest
}
}

四、总结

适配器模式的优点包括:

  • 增强了系统的灵活性和可扩展性。
  • 可以让不兼容的接口之间的代码协同工作。

缺点包括:

  • 增加了代码的复杂度。
  • 可能增加维护的成本。

适配器模式适用于希望让不同接口之间的代码可以协同工作的场景,例如希望使用现有库,但其接口不兼容时。

本文作者:启航黑珍珠号

本文链接:https://www.cnblogs.com/Linzj5950/p/18182307

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   启航黑珍珠号  阅读(52)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起