首页 > 其他 > 详细

适配器模式

时间:2015-10-12 02:20:26      阅读:260      评论:0      收藏:0      [点我收藏+]

设计模式之禅学习——适配器模式

?

m git :?https://github.com/hejiawang

?

1、适配器模式就是将一个类的接口变成客户端所期待的另一种接口,使客户端能够使用原来因为接口不匹配所导致不能用的接口。

? ? ? ? 好像变压器,像我们的手机电脑,不能直接使用220V的电压,那么通过变压器就能降低电压,使原 ? ? ? ?来不能使用的电压现在变得能够使用。这个变压器就是一个适配。

? ? ? ?下图中,原本A和C是不能够在一起,通过B的适配,AC终成眷属了。。。。


bubuko.com,布布扣
?2、下面看看适配器模式的代码:

需要适配的角色,就像上面图中的A。。

package com.wang.adapterPattern;

/**
 * 适配器模式 </br> 目标角色
 * 
 * @author wang
 * 
 */
public interface Target {

	/**
	 * 目标角色自己的方法
	 */
	public void request();
}

?它的实现类

package com.wang.adapterPattern;

/**
 * 目标角色实现类
 * 
 * @author wang
 * 
 */
public class ConcreteTarget implements Target {

	@Override
	public void request() {

		System.out.println("ConcreteTarget");
	}

}

?适配的原角色,就像上图中的C。。

package com.wang.adapterPattern;

/**
 * 适配的源角色
 * 
 * @author wang
 * 
 */
public class Adaptee {

	/**
	 * 源角色的方法
	 */
	public void doSomething() {
		System.out.println("Adaptee");
	}
}

?适配器角色,也就是上图中的B了。。

package com.wang.adapterPattern;

/**
 * 适配器角色
 * 
 * @author wang
 * 
 */
public class Adapter extends Adaptee implements Target {

	@Override
	public void request() {
		super.doSomething();
	}
}

?

客户端使用情况:

package com.wang.adapterPattern;

public class APP {

	public static void main(String[] args) {

		Target target = new ConcreteTarget();
		target.request();

		/**
		 * 适配其他的角色
		 */
		Target targetAdapter = new Adapter();
		targetAdapter.request();
	}
}

?

3、适配器的使用情况很好判断,比如,系统扩展了,需要使用一个已经或新建的类,但是这个类又不符合系统的接口,咋办呢。。。。适配呗。。。中间添加个适配器,搞定。。。。。

适配器模式

原文:http://hejiawangjava.iteye.com/blog/2248335

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