码迷,mamicode.com
首页 > 编程语言 > 详细

java设计模式之-适配器模式

时间:2015-04-01 23:51:51      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:适配器模式

前言

       适配器模式就是当需要的功能与要提供的功能之间接口不符合时,作为两者之间的适配,从而让两者可以无缝对接。例如现实生活中的电脑充电情况一样,如果有朋友出国旅游,在国外买了一台电脑,回到国内后突然想给电脑充电,发现外国的电压不是220V的,而是110V的(这里是假设的),怎么办呢?还好外国买的电脑配有充电转换器,可以将220V的电压转换成110V电压,好吧,电脑充电问题可以解决了。这其中的充电转换器就是适配器,它可以无缝连接220V电压,并将其转换为110V的电压。这就是适配器模式。

例子

  一台需要充电的电脑
<span style="font-size:18px;">public class Computer {

	/**
	 * 充电功能,需要100V的电压
	 * 
	 * @param power100vInterface
	 */
	public void chargeComputer(Power110VInterface power110vInterface) {

		System.out.println("电脑正在充电,电压是:" + power110vInterface.prove110Power());

	}

}</span>
也就是说那台电脑需要一个能提供110V电压的接口
<span style="font-size:18px;">public interface Power110VInterface {
	
	public int prove110Power();

}</span>

但是仅有的类只能提供220V的电压
public class Power220V {

	/**
	 * 提供220V电压
	 * @return
	 */
	public int prove220Power() {
		
		return 220;

	}

}

没关系,以为我们有充电转换器(适配器)
<span style="font-size:18px;">public class Power110VAdapter implements Power110VInterface {

	private Power220V power220v;

	public Power110VAdapter(Power220V power220v) {
		this.power220v = power220v;
	}

	@Override
	public int prove110Power() {

		return this.prove110VFrom220V();

	}

	/**
	 * 可以将220V电压转换为110V电压
	 * 
	 * @return
	 */
	private int prove110VFrom220V() {

		return this.power220v.prove220Power() / 2;

	}

}</span>
 
好了,没问题了电脑终于可以冲上点了

<span style="font-size:18px;">public class MainTest {

	public static void main(String[] args) {

		//一台电脑
		Computer computer=new Computer();
		
		//能提供220V的电压
		Power220V power220v=new Power220V();
		
		//适配器生成提供110V电压的接口
		Power110VInterface power110vInterface=new Power110VAdapter(power220v);
		
		//电脑充电了
		computer.chargeComputer(power110vInterface);
		
	}

}</span>

结果:
电脑正在充电,电压是:110


java设计模式之-适配器模式

标签:适配器模式

原文地址:http://blog.csdn.net/u010739551/article/details/44815023

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!