适配器模式

适配器模式

在这里插入图片描述

生活中的适配器

朋友们,不知道你们在生活中,有没有遇到下面这样的一个场景
在这里插入图片描述
是的,我们必然会遇到类似的这种插头与插座不匹配的问题,而这样的问题也常常会使我们感到困扰.
因此,为了解决这一类问题,世界上又多了一样东西,那就是适配器
在这里插入图片描述
有了这个适配器,我们就可以通过它,将我们的插头与插座进行正常的接通了
话说回来,既然生活中有这种场景,那么我们的程序中,是否有应用这种模式的地方呢,答案是肯定的,那么接下来,我们就开始进入正题

适配器模式角色

适配器模式中有着4大角色:
Target:目标接口(可以是抽象类或接口),客户希望直接用的接口,这里可以理解为插头
Adaptee:适配者,但是与Target不兼容,这里可以理解为插座
Adapter:适配器类,此模式的核心.通过继承或者引用适配者的对象,把适配者转为目标接口,这里可以理解为上面的适配器,用来接通插头和插座
client:需要使用适配器的对象,这里当然就是程序中的调用方

适配器的应用

相信大家都用过Slf4j来打印程序中的日志,而在程序中,打印日志的功能并不是Slf4j来实现的,而是通过底层的Log4j或者LogBack来实现的,Slf4j只负责对他们进行调用.

Adaptee

在这里插入图片描述
在这里插入图片描述

target

在这里插入图片描述

Adapter

在这里插入图片描述
上面虽然我们只实现了Log4j的适配调用,但是我们可以看到,我们只需要改一下适配器中的配置,将Log4j转换成LogBack即可完成对LogBack的适配调用

适配器模式应用场景

一般来说,适配器模式可以看作⼀种"补偿模式",用来补救设计上的缺陷.应用这种模式算是"无奈之举",如果在设计初期,我们就能协调规避接口不兼容的问题,就不需要使用适配器模式了,所以适配器模式更多的应用场景主要是对正在运行的代码进行改造,并且希望可以复用原有代码实现新的功能.比如版本升级等.

相关推荐

  1. 适配器模式

    2024-01-28 09:18:03       43 阅读
  2. 适配器模式

    2024-01-28 09:18:03       45 阅读
  3. 适配器模式

    2024-01-28 09:18:03       46 阅读
  4. 适配器模式

    2024-01-28 09:18:03       44 阅读
  5. 适配器模式

    2024-01-28 09:18:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 09:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 09:18:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 09:18:03       82 阅读
  4. Python语言-面向对象

    2024-01-28 09:18:03       91 阅读

热门阅读

  1. xss跨站脚本攻击

    2024-01-28 09:18:03       57 阅读
  2. 【每日一题】YACS 243:5G通讯

    2024-01-28 09:18:03       52 阅读
  3. npm install 一直卡在 sill idealTree 解决方案

    2024-01-28 09:18:03       52 阅读
  4. k8s Ingress部署应用

    2024-01-28 09:18:03       49 阅读
  5. gbase审计日志

    2024-01-28 09:18:03       58 阅读
  6. python连接activemq

    2024-01-28 09:18:03       51 阅读