1.动机(解决的问题)
在软件开发中,经常会遇到这样的问题:
- 有一个旧系统,我们要对它进行重构,内部的依赖性和复杂性很高,牵一发而动全身,如何对其改造这些做到影响最少?
- 我们要开发新系统去集成旧系统(第三方系统),旧系统的代码和功能不允许改变,新系统应如何适配旧系统的接口完成对接?
2.模式概述:
适配器模式使一个接口转换为客户希望的另一个接口,使接口不兼容的那些类可以一起工作。
3.实现方式:
根据适配对象的不同,分为两种类型:
- 类适配器:对类进行适配
- 对象适配器:对对象进行适配
- 涉及三种角色:目标、源、适配器
- 目标:客户期待得到的接口。可以是抽象或具体的类、或接口。
- 源:当前存在的、要适配的类。可以是抽象或具体的类、或接口。
- 适配器:把源接口转换为目标接口。只能是类。
4.适用场景:
适配器的本质是:转换匹配、复用功能。它是一种补偿模式,通常用来解决接口不相容的问题。
以下场景比较适用:
- 你想使用一个已存在的类,但是它的接口不符合你的需求。
- 你想创建一个可以复用的类,这个类可能和一些不兼容的类一起工作。
- 你想使用一些已经存在的子类,但是不可能对每一个子类都进行适配。