`
Scliu123
  • 浏览: 39995 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDK_实例(Adapter 适配器模式)

阅读更多

接口

 

package book.oo.sort;
/**
 * 定义数字排序的接口
 */
public interface ISortNumber {
	/**
	 * 对整型数组按升序排序
	 * @param intArray	待排序的整型数组
	 * @return	按升序排序后的数组
	 */
	public int[] sortASC(int[] intArray);
}

 

 

 

package book.oo.adapter;

public class Printer {
	
	public void printIntArray(int[] array){
		if (array != null){
			for (int i=0; i<array.length; i++){
				System.out.print(array[i] + " ");
			}
			System.out.println();
		}
	} 
}

 

 

适配器

 

 

package book.oo.adapter;

import book.oo.factory.Factory;
import book.oo.sort.ISortNumber;

public class PrintAdapter extends Printer implements ISortNumber{

	private ISortNumber mySort;
	public PrintAdapter(ISortNumber sort){
		super();
		this.mySort = sort;
	}
	
	public int[] sortASC(int[] intArray) {
		if (this.mySort != null){
			return this.mySort.sortASC(intArray);
		} else {
			return null;
		}
	}
	
	public static void main(String[] args){
		int[] array = new int[]{7,9,4,6,2,-1,12};
		PrintAdapter adapter = new PrintAdapter(Factory.getOrderNumber(Factory.BUBBLE_SORT));
		adapter.printIntArray(adapter.sortASC(array));
	}
	
	/**
	 * Adapter模式,就是适配器模式,使两个原本没有关联的类结合一起使用。
平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,
同时也想用另外一个类的方法。有一个解决方法是,修改它们各自的接口,但是这是我们最不愿意看到的。这个时候Adapter模式就会派上用场了。
	 * 
	 * 我们已经实现了一个数组排序的接口,也有了一个能够打印数组的类,假定不能修改原有的实现。
	 * 现在,需要实现一个类,既能够打印数组,又能对数组进行排序。此时就需要用Adapter模式来实现了。
	 * 
	 * 定义:Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
	 */
}

 

 

 

分享到:
评论

相关推荐

    Java JDK实例宝典

    10 Adapter适配器模式 第3章 数字 3. 1 数字与数字封装类 3. 2 格式化数字 3. 3 数字的舍入 3. 4 转换数字的进制 3. 5 生成随机数 3. 6 处理大数字 第4章 数组与集合 4. 1 ...

    java范例开发大全

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 ...

    Java范例开发大全 (源程序)

     实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 抽象 252  实例162 求自定义几何图形的面积和...

    java范例开发大全(pdf&源码)

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 ...

    java范例开发大全源代码

     实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 抽象 252  实例162 求自定义几何图形的...

    Java范例开发大全(全书源程序)

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 ...

    java编程基础,应用与实例

    17.4 适配器类(Adapter) 285 17.5 文本事件(TextEvent)及其处理 286 17.6 输入事件(InputEvent)抽象类 287 17.7 键盘事件(KeyEvent)及其处理 287 17.8 鼠标事件(MouseEvent)及其处理 291 17.9 项目事件...

    java 面试题 总结

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    java认证所有课程

    - 有可能创建并使用适配器(adapter)类对事件动作进行分类。 - 委托模型有利于把工作分布到各个类中。 - 新的事件模型提供对JavaBeans的支持。 这种方法也有一个缺点: - 尽管当前的JDK支持委托模型和JDK1.0事件模型...

    超级有影响力霸气的Java面试题大全文档

     SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...

Global site tag (gtag.js) - Google Analytics