适配器模式
# 概念
将一个类的接口 ** 变换成客户端所期待的另一种接口,** 从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
# 使用场景
你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么办?详细设计阶段不要考虑使用适配器模式,使用主要场景为扩展应用中。
# 类适配器
Target 目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接口。
Adaptee 源角色:你想把谁转换成目标角色,这个 “谁” 就是源角色,它是已经存在的、运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新、靓丽的角色。
Adapter 适配器角色:适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的。它的职责非常简单:把源角色转换为目标角色。怎么转换?通过继承或是类关联的方式。
# 对象适配器
不使用多继承或继承的方式,而是使用直接关联,或者称为委托的方式。
对象适配器和类适配器的区别:
类适配器是类间继承,对象适配器是对象的合成关系,也可以说是类的关联关系,这是两者的根本区别。实际项目中对象适配器使用到的场景相对比较多。
# 代码示例
public class Adapter extends Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
public void request() {
adaptee.specificRequest();
}
}
上次更新: 2022/12/31, 03:04:26