欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

适配器模式 追MM

程序员文章站 2022-05-25 15:05:44
...

情人节快到了,应该给女朋友送礼物了。借此机会恶搞下适配器模式

引用

适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

 

需求是,原先送给女朋友一辆自行车,作为代步工具,现在有点钱了准备升级一下,到摩托车。。。。总结。。也许它能作为代步工具,不一定是自行车,有可能是个像自行车的摩托车。。。。

 

看一下自行车接口

package adpter.demo;

public interface Bike {
	public void go();
}

 

再看看我女朋友现有的自行车

package adpter.demo;

public class RedBike implements Bike{
	public void go(){
		System.out.println("自行车 速度很慢!!!");
	}
}

 不过自行车真的太慢了。。。

 

在隆重介绍新买的摩托车。。

package adpter.demo;

public interface Moto {
	public void go();
}
 
package adpter.demo;

public class RedMoto implements Moto{

	public void go() {
		System.out.println("摩托车 速度很快!!!!!!");
	}

}

 

现在我女朋友天天上班骑自行车如下。。。。

 

package adpter.demo;

public class ChasingGirl {
	public void gotoCompany(Bike bike){
		bike.go();
	}
}
 

发现了接口是自行车,现在遇到麻烦了。。因为自行车和摩托车接口不同。。。所以我需要一个适配器来解决。

package adpter.demo;

public class MotoAdapter implements Bike{
	private Moto moto;
	public MotoAdapter(Moto moto){
		this.moto=moto;
	}
	public void go() {
		moto.go();
	}
	
}

测试一下

package adpter.demo;

public class ChasingGirl {
	public void gotoCompany(Bike bike){
		bike.go();
	}
	

	
	public static void main(String[] args){
	ChasingGirl chasingGirl = new ChasingGirl();
	chasingGirl.gotoCompany(new RedBike());
	chasingGirl.gotoCompany(new MotoAdapter(new RedMoto()));


	}
}
 

结果如下:

 

自行车 速度很慢!!!
摩托车 速度很快!!!!!!

 

已经完全符合我女朋友的需求了。

 

最后祝大家情人节快乐。