适配器模式是一种结构型设计模式,它用于将一个类的接口转换成客户端所期望的另一个接口。
类比
它就像我们电脑上接口不够时,需要用到的拓展坞,起到转接的作用。它可以将新的功能和原先的功能连接起来,使由于需求变动导致不能用的功能,重新利用起来。
结构图
实例
下面是一个在Java中实现适配器模式的示例:
// 目标接口,定义客户端所期望的接口
interface Target {
void socket();
}
// 被适配者,包含了客户端不兼容的接口
class Adaptee {
void typeC() {
System.out.println("我只是一个typeC接口");
}
}
// 适配器,将被适配者的接口转换成目标接口
class Adapter implements Target {
private Adaptee adaptee;
Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void socket() {
adaptee.typeC();
}
}
// 客户端代码,使用目标接口来调用适配器
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.socket();
}
}
在上面的示例中,我们定义了一个目标接口 Target
,该接口有一个 socket
方法。然后我们有一个被适配者类 Adaptee
,它有一个不兼容 Target
接口的 typeC
方法。接下来,我们实现了一个适配器类 Adapter
,它实现了目标接口 Target
,并将其方法委托给被适配者类的方法。最后,在客户端代码中,我们创建了一个 Adaptee
对象,并使用适配器将其转换成目标接口 Target
,然后调用 socket
方法。
运行结果
适配器模式在实际开发中经常使用,可以帮助我们解决不兼容接口的问题,提高代码的重用性和灵活性。