最近重构项目,发现设计模式的好好搞一搞了,不然举步维艰呀。这次就简单谈谈适配器模式。
待在深圳的小伙伴都偶偶会跑香港购物,尤其是男同胞们,喜欢买电子产品,像苹果手机,Ipad呀。买回来发现是不是GG啦 ,因为充电器适配不了。出现这种情况呢,是不是上淘宝买个适配器转换一下就可以啦。在代码中,我们也可以使用这个方式。

什么是适配器

在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

适配器模式:

适配器分为,类适配器、对象适配、接口适配方式
类适配器方式采用继承方式,对象适配方式使用构造函数传递

package com.evan.springboot.designStudy.adaptorDemo;/*** @author evanYang* @version 1.0* @date 2020/4/30 下午 3:10*/
public interface Power110V {public void connect();
}
package com.evan.springboot.designStudy.adaptorDemo;/*** @author evanYang* @version 1.0* @date 2020/4/30 下午 3:00*/
public interface Power220V {//连接电源public void connect();
}
public class Power220VImpl implements Power220V {@Overridepublic void connect() {System.out.println("连接上220V的电源");}
}
package com.evan.springboot.designStudy.adaptorDemo;/*** @author evanYang* @version 1.0* @date 2020/4/30 下午 3:02*/
public class ElectricCook {private Power110V power110V;public ElectricCook(Power110V power110V){this.power110V=power110V;}public void cook(){//连接电源power110V.connect();System.out.println("电饭煲开始煮饭啦。。。。");}
}
package com.evan.springboot.designStudy.adaptorDemo;/*** @author evanYang* @version 1.0* @date 2020/4/30 下午 3:12*/
public class PowerAdapter implements Power110V {private Power220V power220V;public PowerAdapter(Power220V power220V){this.power220V=power220V;}@Overridepublic void connect() {power220V.connect();}
}
public class Demo {public static void main(String[] args) {Power220V power220V = new Power220VImpl();PowerAdapter powerAdapter = new PowerAdapter(power220V);ElectricCook electricCook = new ElectricCook(powerAdapter);electricCook.cook();}
}


我们根据上面的适配器的特点的介绍中,我们来分析下适配器模式的几类比较适用的使用场景:
1、我们在使用第三方的类库,或者说第三方的API的时候,我们通过适配器转换来满足现有系统的使用需求。
2、我们的旧系统与新系统进行集成的时候,我们发现旧系统的数据无法满足新系统的需求,那么这个时候,我们可能需要适配器,完成调用需求。
3、我们在使用不同数据库之间进行数据同步。(我这里只是分析的是通过程序来说实现的时候的情况。还有其他的很多种方式[数据库同步])。

OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流的输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
SpringMVC 适配器

适配器模式--香港代购苹果(电子商品)相关推荐

  1. C++设计模式详解之适配者模式解析

    C++ 适配器模式解析 适配器模式概念 将一个类的接口,转换成客户端期望的另一个接口.适配器让原先接口不兼容的类可以合作无间. 适配器实例 最简单的示例就是常规3.5mm耳机插入苹果7以上的手机,需要 ...

  2. php适配器模式应用,什么是适配器模式,它有哪些应用场景

    适配器模式属于结构性设计模式,它也是一种常用的设计模式. 适配器模式 适配器模式很容易理解,从字面意思就知道是用来做适配的.他的作用是将原本不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而不 ...

  3. 设计模式 之 适配器模式

    目的 将一个类的接口转换为另一个符合客户期望的接口 达到的目的: 种类 有两种: 对象适配器 [ ] 类适配器(嗷--暂时没有实际场景让自己完全明白嗷?) NOTE: 对象适配器和类适配器使用两种不同 ...

  4. Swift 中的设计模式 #3 外观模式与适配器模式

    作者:Andrew Jaffee,原文链接,原文日期:2018-09-04 译者:郑一一:校对:BigNerdCoding,pmst,Forelax:定稿:Forelax 本文是我的设计模式系列教程的 ...

  5. 拼多多一出手,苹果AirPods Pro才发布一天就降价了

    拼多多现在变成了一个什么样的存在呢?只有你不敢想的,没有拼多多砍不下的. 这是苹果卖得最贵的无线耳机了,1999元的价格比起AirPods二代耳机贵了差不多700块钱,究竟值不值得为降噪功能多花这么多 ...

  6. 4.8_adapter_结构型模式:适配器模式

    结构型模式 --- 适配器模式 --- 内容:将一个类的接口转换成客户希望的另一个接口使原本由于接口不兼容而不能一起工作的那些类,可以一起工作实现方式:1. 类适配器:使用多继承2. 对象适配器:使用 ...

  7. 适配器模式 个人理解+JAVA 小例子

    首先申明两个互不相关的接口,一个用来定义Android充电线插口标准,一个定义IPhone 6充电线插口标准 Android插口标准 package com.adaptor;public interf ...

  8. 什么是适配器模式,它有哪些应用场景

    适配器模式属于结构性设计模式,它也是一种常用的设计模式. 适配器模式 适配器模式很容易理解,从字面意思就知道是用来做适配的.他的作用是将原本不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而不 ...

  9. 设计模式回顾——适配器模式(C++)

    文章目录 1 前言 2 什么是适配器模式 2.1 生活中的适配器 2.2 适配器模式含义 2.3 适配器模式作用 3 适配器模式优缺点 3.1 适配器优缺点 3.2 类适配器优缺点 3.3 对象适配器 ...

最新文章

  1. MachineLN博客目录
  2. java相对目录_java相对目录和绝对目录解析
  3. 4g模块注册上网 移远_Openwrt支持移远4G模块过程记录
  4. python桌面程序开发_程序员之路:python3+PyQt5+pycharm桌面GUI开发
  5. python学生类出不来中文_Python 这类看起来学习门槛低的语言,是否真的适合入门编程学习?...
  6. .ps文件怎么打开_ps界面的认识及文件的打开
  7. Python:批量修改图片的后缀名(模板)
  8. Mac好用的硬盘数据恢复软件推荐
  9. Oracle SQL脚本批量导入导出
  10. Phaser2.0 tween动画
  11. V4L2驱动详解 API翻译
  12. Dict添加元素 - Python
  13. 如何使用Proteus进行电路设计仿真?
  14. Vulnhub_hacksudo_fog
  15. java list clear 垃圾回收_java垃圾回收机制
  16. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)
  17. 动画程序时长缩放是什么意思_1分钟做出高逼格动画!PPT中自带的小功能帮你一键搞定!...
  18. Mysql搜寻姓_mysql – 用于搜索名称和姓氏的最有效的sql架构
  19. Redis 常见面试题
  20. stm32毕业设计 智能小车 自动泊车系统

热门文章

  1. Managed Beans
  2. overriding managed version警告
  3. html 怎么布局ui,移动端UI快速布局解决方案AUI
  4. narwal机器人_国货之光!云鲸NARWAL扫地机器人国外众筹获第一
  5. M365 比较 WLB?而 Bing 加班很猛?我也吃了一鲸!
  6. 2×3卡方检验prism_【SPSS数据分析】方差分析之多因素方差分析(3)Graphpad Prism绘制简单效应折线图...
  7. mysql存储表情字符_MySQL 存储表情字符
  8. Linux下C语言调用paly播放音频文件
  9. python强制终止_python强制终止
  10. [Java][详解]使用jintellitype实现键盘全局监听