适配器模式

发布于:2025-02-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

适配器模式(Adapter Pattern)是一种结构设计模式,用于使原本不兼容的接口能够一起工作。它通常包含一个“适配器”类,该类将一个类的接口转换成客户端期望的另一个接口表示。适配器模式让不同的接口能够协同工作,提高了复用性。

适配器模式的关键要素:

  1. 目标接口(Target Interface):客户端使用的接口。
  2. 适配者类(Adaptee Class):需要适配的类,它有自己定义的接口。
  3. 适配器类(Adapter Class):通过在内部包装一个适配者对象,把源接口转换成目标接口。

示例代码:

假设我们有一个第三方库的类,其接口不符合我们的系统要求,我们需要创建一个适配器来使这个类能够被我们的系统使用。

首先,我们定义目标接口,这是我们系统期望的接口:

public interface Target {
    
    void request();
    
}

然后,我们有一个已经存在的类,它有一个不同的接口:

public class Adaptee {
    
    public void specificRequest() {
        System.out.println("Adaptee performs a specific request.");
    }
    
}

接下来,我们创建适配器类,它实现了目标接口,并在内部使用适配者类:

public class Adapter implements Target {
    
    private Adaptee adaptee;
    
    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }
    
    @Override
    public void request() {
        // 将目标接口的调用转换为适配者接口的调用
        adaptee.specificRequest();
    }
    
}

最后,在客户端代码中,我们可以通过适配器来使用原本不兼容的类:

public class AdapterPatternDemo {
    
    public static void main(String[] args) {
        
        Adaptee adaptee = new Adaptee();
        Target target = new Adapter(adaptee);
        
        target.request(); // 通过适配器调用Adaptee的方法
        
    }
    
}

在这个示例中,Target 是目标接口,Adaptee 是已经存在的类,Adapter 是适配器类。客户端代码通过 Adapter 来使用 Adaptee,而不需要知道 Adaptee 的具体实现细节。

适配器模式使得我们可以重用现有的类,即使它们的接口与我们的系统不兼容。它还提供了一个清晰的解耦方式,使得我们可以在不影响客户端代码的情况下,替换或修改适配器的实现。


网站公告

今日签到

点亮在社区的每一天
去签到