首页
学习
活动
专区
圈层
工具
发布

设计模式----适配器模式

适配器模式:

将一个类的接口,转化成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

适配器模式的结构:

适配器模式一般有三个部分:目标类/接口、被适配的对象、适配器类。

  • 目标类/接口:我们想要使用的接口。
  • 被适配的对象:已经存在的对象。这个对象和目标接口不兼容,但我们想能够想调用目标接口那样调用这个对象。
  • 适配器类:实现该类,来让原本接口不相容的类可以兼容。它要继承/实现目标类/接口,并且应该持有一个被适配对象的句柄。

示例代码:

目标接口:

代码语言:javascript
复制
public interface Target {
    public void request();
}

被适配的对象:

代码语言:javascript
复制
public class Adaptee {
    public void specificRequest(){
        //业务代码
    }
}

适配器类:

代码语言:javascript
复制
public class Adapter implements Target{
    //持有需要被适配的接口对象
    private Adaptee adaptee;
    //构造器
    public Adapter(Adaptee adaptee){
        this.adaptee = adaptee;
    }
    //实现接口方法,它调用被适配对象的方法
    public void request() {
        adaptee.specificRequest();
    } 
}

像上面这样,Adaptee类就可以适配成Target接口,在需要Target接口的地方可以使用Adater(被适配的Adaptee)。

适配器可以有类适配器和对象适配器两种实现。但Java无法实现类适配器因为类适配器需要多继承。

  • 当需要使用一个现有的类而其接口不符合你的需要时,就使用适配器。
  • 适配器将一个对象包装起来以改变其接口;装饰器将一个对象包装起来以增加新的行为和责任;而外观将一群对象“包装”起来以简化其接口。
下一篇
举报
领券