适配器模式总结

适配器模式是一种设计模式,它将A接口的对象转换为B接口,使得对外表现如同B接口的对象。虽然有时显得简单,但该模式提供了很好的可扩展性和类复用性。例如,网络适配器、充电器等都是生活中的适配器实例。通过一个具体的例子,展示了如何将PS/2键盘通过适配器转换为USB接口。
摘要由CSDN通过智能技术生成

适配器模式核心思想:将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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值