【适配器模式】—— 每天一点小知识

简介: 【适配器模式】—— 每天一点小知识

🐳设计模式之适配器模式

引言

设计模式是软件开发中重要的概念之一。适配器模式是设计模式中的一种,它用于将一个类的接口转换成客户端期望的另一个接口。在本文中,我们将深入探讨适配器模式的概念和思想,并介绍适配器模式的应用场景以及常见的代码实现方式。

适配器模式的概念和思想

 💧适配器模式是一种结构型设计模式,它通过将一个类的接口转换成客户端期望的另一个接口来实现不兼容接口之间的协作。

 💧适配器模式的核心思想是创建一个适配器类,该适配器类实现客户端期望的接口,并持有一个需要适配的对象实例。适配器类将客户端的请求转发给被适配对象,从而实现对原有接口的适配。


介绍适配器模式的应用场景以及常见的代码实现方式 ↓

应用场景

 💧适配器模式通常在以下场景中使用:

  • 将一个已经存在的类集成到另一个接口中。
  • 在系统中引入一个第三方库或组件,但其接口与系统要求的接口不兼容。
  • 对现有的类库进行功能扩展或修改,但又不希望对原有代码进行修改。

类适配器

 💧类适配器是一种常见的适配器模式实现方式。在该实现中,适配器类继承自被适配类,并实现客户端期望的接口。

public interface Target {
    void request();
}
public class Adaptee {
    public void specificRequest() {
        // 原有接口的实现逻辑
    }
}
public class Adapter extends Adaptee implements Target {
    public void request() {
        specificRequest();
        // 其他适配逻辑
    }
}

在上述代码中,我们定义了一个目标接口 Target 和一个被适配类 Adaptee。适配器类 Adapter 继承自 Adaptee 类,并实现了 Target 接口。适配器类中的 request() 方法将客户端的请求转发给了被适配类的 specificRequest() 方法。

对象适配器

 💧对象适配器是另一种常见的适配器模式实现方式。在该实现中,适配器类持有一个被适配对象的实例,并实现客户端期望的接口。

public interface Target {
    void request();
}
public class Adaptee {
    public void specificRequest() {
        // 原有接口的实现逻辑
    }
}
public class Adapter implements Target {
    private Adaptee adaptee;
    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }
    public void request() {
        adaptee.specificRequest();
        // 其他适配逻辑
    }
}

在上述代码中,我们定义了一个目标接口 Target 和一个被适配类 Adaptee。适配器类 Adapter 持有一个 Adaptee 类的实例,并实现了 Target 接口。适配器类中的 request() 方法将客户端的请求转发给了被适配类的 specificRequest() 方法。

使用适配器

 💧以下是适配器模式的使用示例:

public class Client {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target adapter = new Adapter(adaptee);
        adapter.request();
    }
}

在上述代码中,我们创建了一个被适配对象 Adaptee 和一个适配器对象 Adapter。通过将被适配对象传递给适配器的构造函数,我们将被适配对象转换成客户端期望的接口。最后,通过适配器的 request() 方法,客户端可以调用被适配对象的功能。

总结

   适配器模式是一种有用的设计模式,可以在不改变现有接口的情况下实现不兼容接口之间的协作。通过适配器模式,我们可以将已有的类集成到新的接口中,引入第三方库或组件,并对现有的类库进行功能扩展或修改。



相关文章
|
3月前
|
Windows
|
6月前
|
设计模式 C++
结构型 适配器模式
结构型 适配器模式
39 0
|
Java API
适配器模式的运用
适配器模式的运用
82 0
|
设计模式 数据库 C++
2023-6-15-第六式适配器模式
2023-6-15-第六式适配器模式
92 0
|
设计模式 前端开发
关于适配器模式我所知道的
关于适配器模式我所知道的
47 0
|
Java 程序员 API
结构型模式-适配器模式
结构型模式-适配器模式
88 0
|
设计模式
我学会了,适配器模式
适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
98 0
我学会了,适配器模式
|
设计模式 Java
【玩转23种Java设计模式】结构型模式篇:适配器模式
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。适配器模式属于结构型模式,主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。
【玩转23种Java设计模式】结构型模式篇:适配器模式
|
设计模式 Java Spring
适配器模式详解与应用
引用一个最经典的例子,我们自己家里的电压都是220V的,而早期的手机充电时所用的都是5V的电压。要想让手机在220V的家庭电压下充电,就需要一个电源适配器。在编程中,也经常会出现一个类程序无法直接去使用,而需要通过适当变换的行为抽象出来的设计模式就是适配器模式。
|
设计模式 Java
【Java设计模式系列】适配器模式及适用场景详解(中)
【Java设计模式系列】适配器模式及适用场景详解
111 0
【Java设计模式系列】适配器模式及适用场景详解(中)