java设计模式 -【适配器模式】

适配器模式的定义

适配器模式(Adapter Pattern)是一种结构型设计模式,用于解决接口不兼容问题。通过将一个类的接口转换成客户端期望的另一个接口,使原本因接口不匹配而无法工作的类能够协同工作。

核心角色

目标接口(Target):客户端期望的接口,可以是抽象类或接口。
适配器(Adapter):实现目标接口,并持有被适配者的实例,通过调用被适配者的方法实现接口转换。
被适配者(Adaptee):需要被适配的现有类或接口

实现方式

适配器继承被适配者并实现目标接口,直接复用被适配者的方法。

类适配器(通过继承)

适配器继承被适配者并实现目标接口,直接复用被适配者的方法。

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

// 被适配者  
class Adaptee {
    void specificRequest() {
        System.out.println("Adaptee method called");
    }
}

// 类适配器  
class ClassAdapter extends Adaptee implements Target {
    @Override
    public void request() {
        specificRequest(); // 调用被适配者的方法  
    }
}

对象适配器(通过组合)

适配器持有被适配者的实例,通过委托调用其方法。

// 对象适配器  
class ObjectAdapter implements Target {
    private Adaptee adaptee;

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

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

应用场景

1.旧系统接口与新系统不兼容时,通过适配器复用旧代码。
2.需要使用第三方库但接口与现有代码不匹配时。
3.统一多个类的接口以简化客户端调用。

示例代码(客户端调用)

public class Client {
    public static void main(String[] args) {
        // 类适配器调用  
        Target classAdapter = new ClassAdapter();
        classAdapter.request();

        // 对象适配器调用  
        Adaptee adaptee = new Adaptee();
        Target objectAdapter = new ObjectAdapter(adaptee);
        objectAdapter.request();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值