Java适配器模式生活中的实例,帮助理解

以手机充电的场景为例,写了个适配器的代码。

接口: 220V电源  Interface Charge220{}

手机的充电方法:void Charge(Charge220 c){

}

日常生活,我们可以直接获取220V电源,但是手机又不能用220V点压充电,所以我们需要一个充电器(适配器)

代码如下:

//我们只有220V的可以直接使用的电压
interface Charge220{
	void charge();
}                   

//代表3V的电源,但我们直接获取不到
class V3 {
	public void charge() {
		System.out.println("charging with 3V");
	}
}                 

//适配器,实现(接入)220v,持有3v对象,在充电方法中调用3v的充电
class VAdapter implements Charge220{     
	V3 v3 ;
	
	public VAdapter(V3 v3) {
		super();
		this.v3 = v3;
	}

	@Override
	public void charge() {
		v3.charge();
	}
}
public class Phone {
	public Phone() {
		super();
	}

	//手机的充电方法,能直接获取的只有220v的电,但我们肯定不能把手机直接接到220V电压的电线上
	public void getE(Charge220 c) {       
		c.charge();
	}

	public static void main(String[] args) {
		Phone p = new Phone();
		VAdapter adapter = new VAdapter(new V3());
		p.getE(adapter);      //通过适配器给手机充电
	}

}

运行程序:输出  charging with 3V

只是为了更好的理解适配器模式,所以以充电器充电为例写了个示例代码。

比喻可能有些不合理之处。