适配器模式是一种设计模式,它允许将一个类的接口转换成客户期望的另一个接口。适配器模式使原本接口不兼容的类可以一起工作。
何时使用适配器模式?
- 当你想要使用一个已经存在的类,而这个类的方法签名与当前系统的接口不兼容时。
- 当你想要创建一个可重用的类,该类可以与其他不相关的或者不可预见的类或模块协同工作。
- 当你想要一个已经存在的类可以与其他不相关的类或模块协同工作,而这些类或模块之间不存在任何依赖关系。
适配器模式的组成
- 目标接口(Target):定义客户所期待的接口。
- 源类(Adaptee):包含你想要使用的类的方法。
- 适配器(Adapter):实现目标接口,并包含对源类的引用。
适配器模式示例
假设我们有一个旧式的手机充电器(Adaptee),它只能插入特定的电源插座。现在我们想要使用一个新式的手机充电器(Target),它需要插入一个不同的电源插座。我们可以通过创建一个适配器(Adapter)来实现这一点。
// 目标接口
interface Charger {
void charge();
}
// 源类
class OldCharger implements Charger {
public void charge() {
System.out.println("Insert old charger into the power outlet.");
}
}
// 适配器
class Adapter implements Charger {
private OldCharger oldCharger;
public Adapter(OldCharger oldCharger) {
this.oldCharger = oldCharger;
}
public void charge() {
System.out.println("Insert new charger into the power outlet.");
oldCharger.charge();
}
}
// 客户端代码
public class AdapterPatternDemo {
public static void main(String[] args) {
OldCharger oldCharger = new OldCharger();
Adapter adapter = new Adapter(oldCharger);
Charger newCharger = adapter;
newCharger.charge();
}
}
更多关于设计模式的介绍,请访问设计模式教程。