前言
在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等
定义
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
分类
- 类适配器模式
- 对象适配器模式
- 接口适配器模式
优点与缺点
优点
- 客户端通过适配器可以透明地调用目标接口
- 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题
缺点
- 增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码变得凌乱
模式的结构
适配器模式(Adapter)包含以下主要角色。
- 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口(客户指定需要调用的接口)
- 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。(程序中现有的接口, 需要进行适配)
- 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者(需要新增加的类)
代码实现
需求
手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电,我们的demo就是写一个电源适配器
类适配器模式
git地址 : https://gitee.com/hctrl/design-mode-project.
对象适配器模式
git地址: https://gitee.com/hctrl/design-mode-project.