适配器模式总结

适配器模式核心思想:将A接口的对象转化成B接口的对象,使之从外观上看似是B对象。可是确实A对象在运行实际的业务逻辑。

看到适配器模式的第一感觉就是:这也算个模式?就应该这样处理啊!

生活中有非常多鲜活的样例,如网络适配器(网卡),调制解调器,数据线,充电器等等。

其缺点就是。须要有这么一个额外的东西才干进行转换。

适配器模式的优点:实现了良好的可扩展性和类复用性。

以下给出一个简单的实例。将PS/2的键盘转接成USB接口。

package adapterpattern;

/**
 * PS键盘接口
 */
public interface PS2 {

	String A();

	String B();

	String C();
}


package adapterpattern;

/**
 * USB键盘接口
 */
public interface USB {

	String A();

	String B();

	String C();
}

package adapterpattern;

/**
 * PS2键盘
 */
public class PS2Keyboard implements PS2{

	@Override
	public String A() {
		return "PS@A";
	}

	@Override
	public String B() {
		return "PS@B";
	}

	@Override
	public String C() {
		return "PS@C";
	}

}

package adapterpattern;

/**
 * PS2转USB转换器
 */
public class Adapter implements USB{

	private PS2Keyboard keyboard;
	
	public Adapter(PS2Keyboard keyboard)
	{
		this.keyboard = keyboard;
	}
	
	@Override
	public String A() {
		return keyboard.A();
	}

	@Override
	public String B() {
		return keyboard.B();
	}

	@Override
	public String C() {
		return keyboard.C();
	}

}

package adapterpattern;

public class Test {
	
	public static void main(String[] args) {
		
		USB usbKeyboard = new Adapter(new PS2Keyboard());
		
		System.out.println(usbKeyboard.A());
		System.out.println(usbKeyboard.B());
		System.out.println(usbKeyboard.C());
	}
}


測试结果

PS@A
PS@B
PS@C


原文地址:https://www.cnblogs.com/gcczhongduan/p/5374870.html