全面理解设计模式之适配器模式

适配器模式

   什么是适配器模式,它能做什么?下面是比较官方的解释。

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以一起工作。

类图

在这里插入图片描述

举个栗子

  个人比较喜欢看小说,所以我希望有一个小说阅读器(Target)能够直接阅读。

public interface Reader {
    void read(String novelName);
}

  但是我只找到了起点小说阅读器(Adaptee),而且和我想象的不太一样。

public class QiDianReder {
    void startReadTime(String novelName) {
        System.out.println("开启欢乐的阅读时光!!! 你正在看" + novelName);
    }
}

  我期望直接read,而不是类似于QiDianReder的startReadTime。但是可以通过这个接口来做一些事情。所以可以来定制一个属于我私人的阅读器(就是类图中的适配器-----Adapter)。

public class MyReader implements Reader {
    private QiDianReder qiDianReder;

    public MyReader() {
        this.qiDianReder = new QiDianReder();
    }

    @Override
    public void read(String novelName) {
        qiDianReder.startReadTime(novelName);
    }
}

  然后就开始使用这个适配器(客户端调用)

public class Client {
    public static void main(String[] args) {
        Reader reader = new MyReader();
        reader.read("神墓");
    }
}

在这里插入图片描述

总结

  其实就是实现一下期望的接口,在接口中调用一下现有API的方法。装饰器模式这么看起来还是比较简单,如何在实际项目中使用就要看是否需要,不能为了设计模式而去使用设计模式。
  在MyBatis的日志模块中也使用到了适配器模式,日志的厂商有如log4j、slf4j等等。这些开发不会为了MyBatis而定义接口,所以MyBatis自己的接口实现类中调用了这些第三方日志的接口。当然具体实现没有这里描述的这么简单,大家可以去看一下MyBatis的Log模块并不复杂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值