23种设计模式:适配器模式(最强解析!!!)

适配器模式是23种设计模式之一。

 

适配器模式作用

适配器模式的作用,在于将一个类的接口变换为客户端所期待的另一种接口,使得原本因为接口不匹配而无法一起工作的两个类能在一起工作。

也就是说,适配器模式解决的是接口兼容性问题。

适配器模式实现方式

适配器模式依据实现方式的不同,可以划分为3种:类适配器、对象适配器和接口适配器。

(一)类适配器

类适配器类图如下:

23种设计模式:适配器模式(最强解析!!!)_第1张图片

 类适配器主要由三部分构成:

  • Target:目标角色,也即被转换后的接口;
  • Adaptee:源角色,需要被转换的接口;
  • Adapter:适配器,负责将Adaptee转换为Target。

使用示例如下:(假定TypeC接口输出的数据格式就是TypeC格式,可能不是,只是为了说明如何使用)

public interface VgaFormatMessage {	// target,投影仪直接使用VGA来获得数据的,需要Vga格式的数据
	public String getVgaFormat();
}

public class TypeCFormatMessage {	// Adaptee:手机输出的TypeC格式的数据
	public String typecFormat() {
		return "typeC格式的数据";
	}
}

public class TypeCtoVgaFormatMessageAdapter extends TypeCFormatMessage implements VgaFormatMessage{	
    // Adapter:将TypeC格式的数据转换为VGA格式的数据
	@Override
	public String getVgaFormat() {
		String typeCFormatMessage = super.typecFormat();//获得TypeC格式的数据
		String vgaFormatMessage = "转换成VGA格式数据:" + typeCFormatMessage;//将TypeC格式的数据转换为VGA格式数据
		return vgaFormatMessage;
	}
}
//适配器的作用到上面其实就已经结束了,下面只是使用,main方法中是测试
public class Projector {
	public void getVgaFormatMessage(VgaFormatMessage vgaFormatMessage) {
		String message = vgaFormatMessage.getVgaFormat();
		System.out.println(message);
	}
	//测试
	public static void main(String[] args) {
		Projector projector = new Projector();
		projector.getVgaFormatMessage(new TypeCtoVgaFormatMessageAdapter());
	}
}

(二)对象适配器

待更~

(三)接口适配器

待更~

你可能感兴趣的:(java,设计模式,适配器模式,后端,面试)