设计模式之适配器模式

适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以协同工作。

适配器模式的核心思想是创建一个适配器类,该类包装了一个已有类的接口,以满足客户端的需求。适配器类中持有一个已有类的实例,将客户端请求转发给该实例,并对请求进行适当的转换和适配。

适配器模式的关键要素包括:

  • 目标接口:客户端所期望的接口,适配器类将原本不兼容的接口转换为目标接口。
  • 已有类:需要被适配的类,它的接口与目标接口不兼容。
  • 适配器:实现目标接口,持有已有类的实例,将客户端请求转发给已有类,并进行适当的转换和适配。

适配器模式的优点包括:

  • 提供了类之间的接口转换,使得原本不兼容的类可以协同工作。
  • 将适配的代码封装在适配器中,使得客户端代码与具体类解耦,提高代码的灵活性和可维护性。

下面是一个简单的适配器模式示例:

// 目标接口
interface Target {
    void request();
}

// 已有类
class Adaptee {
    public void specificRequest() {
        System.out.println("Adaptee specificRequest");
    }
}

// 适配器
class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    public void request() {
        adaptee.specificRequest();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target adapter = new Adapter(adaptee);

        adapter.request();
    }
}

输出结果:

Adaptee specificRequest

在上述示例中,我们有一个已有类Adaptee,它提供了一个specificRequest()方法。我们希望将Adaptee的接口转换为目标接口Target。为此,我们创建了一个适配器类Adapter,实现了目标接口Target,并在适配器中持有了Adaptee的实例。

在客户端代码中,我们创建了Adaptee对象和适配器对象,将适配器对象当作目标接口使用。当客户端调用目标接口的request()方法时,适配器将请求转发给Adaptee对象的specificRequest()方法。

通过适配器模式,我们可以使得原本不兼容的类协同工作,将已有类的接口转换为目标接口,使得客户端代码可以无缝地使用已有类的功能。适配器模式在系统的演进和重构中有很大的作用,可以方便地扩展和修改接口,同时保持与客户端的兼容性。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲤鱼程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值