首页 > 其他 > 详细

设计模式-适配器模式

时间:2016-04-15 02:24:02      阅读:143      评论:0      收藏:0      [点我收藏+]

一、适配器模式

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——我一直不太信任自己的记忆力,所以我把它们都写下来

? ? 大家都知道,iphone手机充电器手机端插口和android手机的不一样。在朋友家你的iphone快没电了,但是这个穷逼朋友用的是安卓手机,他的充电线我用不了,可咋整?别怕,苹果公司知道自己很偏执,但是又不能顺应潮流,所以买iphone的时候附带了一个转接头,就下面这个东西
bubuko.com,布布扣? ? 本文要讨论的是适配器模式,它的主要作用是在新接口和老接口之间进行适配。就像上面的例子,用安卓充电器给iphone充电,那需要一个转接头(适配器)。给安卓充电器手机端插上转接头然后给iphone充电,这一刻是不是很安心!下面用代码来展示下这个适配器模式

? ?先看看原配android充电器

?

/**
 * android充电器接口
 * @author albert
 *
 */
public interface AndroidChargerInterface {
	public void charge();
}


/**
 * @author albert
 * android充电器实现类
 */
public class AndroidCharger implements AndroidChargerInterface {
	public void charge() {
		System.out.println("Android手机充电");
	}

}

//测试类,给android手机充电
public class Test {

	public static void main(String[] args) {
		//初始化一个android充电器
		AndroidChargerInterface charger = new AndroidCharger();
		//开始充电
		charger.charge();
	}

}

?运行Test打印结果:Android手机充电。

?

? 现在我在朋友家,需要用朋友的android手机充电器,上面的AndroidChargerInterface接口和AndroidCharger类都是不可变的。如果想使用这一套API,那必须自己写代码解决。下面是苹果充电的接口和类

?

/**
 * iphone充电器接口
 * @author albert
 *
 */
public interface IphoneChargerInterface {
	public void charge();
}


/**
 * @author albert
 * iphone充电器实现类
 */
public class IphoneCharger implements IphoneChargerInterface {
	public void charge() {
		System.out.println("IPhone手机充电");
	}

}


/**
 * @author albert
 * 转接头(适配器)
 */
public class ChargeAdapter implements AndroidChargerInterface {//实现老接口
	
	private IphoneChargerInterface charger;//传入新接口
	public ChargeAdapter(IphoneChargerInterface charger) {
		this.charger = charger;
	}
	//接好转接头,给iphone充电
	public void charge() {
		charger.charge();
	}
}

publicclass Test {

public static void main(String[] args) {

//初始化一个iphone充电

IphoneChargerInterface charger = new IphoneCharger();

ChargeAdapter adapter = new ChargeAdapter(charger);

//开始给iphone充电

adapter.charge();

}

}

?

??


?

设计模式-适配器模式

原文:http://zyqwst.iteye.com/blog/2290321

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!