现在的位置: 首页 > 面试题 > 设计模式面试题 > 正文

10.什么是适配器模式?

2022年01月03日 设计模式面试题 ⁄ 共 782字 ⁄ 字号 暂无评论
博客主机

答:适配器模式是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。

 

优点:

 

可以让两个没有关联的类一起运行,起着中间转换的作用;

灵活性好,不会破坏原有的系统。

缺点:过多地使用适配器,容易使代码结构混乱,如明明看到调用的是 A 接口,内部调用的却是 B 接口的实现。

 

以生活中的例子来说,比如有一个充电器是 MicroUSB 接口,而手机充电口却是 TypeC 的,这个时候就需要一个把 MicroUSB 转换成 TypeC 的适配器,如下图所示:

 

适配器实现代码如下:

 

/\* \* 传统的充电线 MicroUSB \*/

interface MicroUSB {

void charger();

}

/\* \* TypeC 充电口 \*/

interface ITypeC {

void charger();

}

class TypeC implements ITypeC {

@Override

public void charger() {

System.out.println("TypeC 充电");

}

}

/\* \* 适配器 \*/

class AdapterMicroUSB implements MicroUSB {

private TypeC typeC;

 

public AdapterMicroUSB(TypeC typeC) {

this.typeC = typeC;

}

 

@Override

public void charger() {

typeC.charger();

}

}

/\* \* 测试调用 \*/

public class AdapterTest {

public static void main(String[] args) {

TypeC typeC = new TypeC();

MicroUSB microUSB = new AdapterMicroUSB(typeC);

microUSB.charger();

 

}

}

 

程序执行结果:

 

TypeC 充电

Wopus问答

Wopus问答

给我留言

留言无头像?


×