java设计模式(适配器模式)

适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它分为类适配器和对象适配器两种实现方式。类适配器通过继承原有类并实现目标接口来适配,而对象适配器则持有原有类的实例并实现目标接口。适配器模式提高了代码的可复用性和可扩展性,简化了系统维护。
摘要由CSDN通过智能技术生成

适配器模式是一种结构型设计模式,它可以用于解决两个接口不兼容的问题。在软件开发中,经常会出现这种情况:需要使用某个已有的类,但是它的接口与自己的需求不一致。这个时候,就可以使用适配器模式进行适配,使得原本不兼容的接口改变。

适配器模式有两种实现方式:类适配器和对象适配器。

类适配器实现方式是,适配类实目标接口。这样,适配器就使用原有类的方法,在实现目标接口的同时,对其方法进行适配。例如,我们有一个英语字典类,但是我们需要将它适配成中文翻译器。于是,我们可以创建一个类配器,继承英语字典类,同时实现中文翻译器接口。在适配器中重英语字典类中的方法,使够翻译成中文。

对象适配器的实现方式是,适配器持有原有类的一个实例,同时实现目标接口。这样,目标接口可以调用适配器,适配用有类的方法。例如,我们有支付类,但是我们需要将它适配成微信支付。于是,我们可以创建一个对象适配器,持有支付宝支付类的实例,在适配器中实现微信支付。在适配器中,我们可以调用支付宝支付类的方法,完成微信支付的适配。

适配器模式的优点是,它可以让原有的类和目标接口进行适配,从而避免了额外的代码修改和维护成本。此外,适配器模式也提高了代码的可复用性和可扩展性,使得代码更加灵活和易于维护。

总的来说,适配器模式是一种非常实用的设计模式,可以帮助我们处理接口不兼容的适配器或对象适配器,我们可以让原有的类和目标接口进行适配,从而使得系统更加灵活和易于扩展。

对象适配器

示例代码:

我们首先定义一个支付接口 Pay,里面包含支付方法 pay

public interface Pay {
    void pay();
}

接着,我们定义一个支付宝支付的实现类 Pay 接口,实现支付方法 pay

public class Alipay implements Pay {
    @Override
    public void pay() {
        System.out.println("使用支付宝支付");
    }
}

现在我们需要将支付宝支付适配为微信支付。我们定义一个微信的适配器类,实现 Pay 接口,里面持有一个支付宝支付的实例,通过适配器的 pay 方法来调用支付宝支付的 pay 方法,从而实现微信支付的功能

public class WechatPayAdapter implements Pay {
    private Alipay alipay;

    public WechatPayAdapter(Alipay alipay) {
        this.alipay=alipay;
    }

    @Override
    public void pay() {
        alipay.pay();
    }
}

​

最后,我们在客户端代码中使用微信支付适配器来实现支付功能

public static void main(String[] args) {
        Pay pay1=new WechatPayAdapter(new Alipay());
        pay1.pay();

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值