【设计模式】适配器模式

适配器模式

  • 适配器模式的定义
    • 将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
  • 应用适配器来解决问题的思路
    • 问题的根源在于接口的不兼容,功能是已经实现了的,那么也就是说只要想办法让两边的接口匹配起来,就可以复用第一版的功能了
    • 定义一个类,来实现第二版的接口,然后在内部实现的时候,调转第一版已经实现了的功能,这样就可以通过对象组合的方式,既复用了第一版已经实现了的功能,同时又在接口上满足了第二版调用的要求

在这里插入图片描述

  • Client:客户端,调用自己需要的领域接口target
  • Target:定义客户端需要的跟特定领域相关的接口
  • Adaptee:已经存在的接口,通常能满足客户端的要求,但是接口与客户端要求的特定领域接口不一致,需要被适配
  • Adapter:适配器,把Adaptee适配成为Client需要的target
public interface Target {
    public void request();
}

public class Adaptee implements Target {
    public void specificRequest() {
        /// 已实现的具体功能
    }
}

public class Adapter {
    private Adaptee adaptee;

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

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

public class Client {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target target = new Adapter(adaptee);
        target.request();
    }
}
  • 适配器模式的功能:进行转换匹配,复用已有的功能
  • Adaptee和Target的关系:
    • 适配器模式中被适配的接口Adaptee和适配器成为的接口Target是没有关联的,也就是说两者中的方法可以相同,也可以不同
  • 对象组合
    • 适配器的实现方式是依靠对象组合的方式。通过给适配器对象组合被适配的对象,然后客户端调用Target的时候,适配器会把相应的功能委托给被适配的对象去完成
  • 适配器模式的优点
    • 更好的复用性
    • 更好的可扩展性
  • 适配器的缺点
    • 过多的使用适配器会使系统非常凌乱,不容易整体进行把握
  • 适配器的本质就是:转换匹配,复用功能
  • 何时使用适配器?
    • 想要使用一个已存在的类,但是它的接口不符合你的需求
    • 想创建一个可以复用的类,这个类可能和一些不兼容的类一起工作
    • 使用一些已经存在的类,但是不可能对每一个子类都进行适配
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值