模板设计模式

/*
 * 定义好一个模板,通用逻辑进行实现, 核心的逻辑空出,谁使用谁添加
 * 
 * 时间测试 --> 一段代码的执行时间
 * 需要设计一个模板,写好计算时间, 测试代码的位置空余
 */
public class Test {
	public static void main(String[] args) {
		/**
		* 模板:
		* 		在父类中定义一个方法,方法是一些总体(骨架),而将某一些实际操作延迟到子类中实现
		* ps: (通用)
		* 		提供模板方法的类 --> 抽象类--> 抽象方法
		* 		模板方法中具体的实现 是子类
		*/
		System.out.println("选择排序时间:");
		new SelectSort().time();
		System.out.println("-------------------------------");
		System.out.println("冒泡排序时间");
		new BubbleSort().time();
	}

}

abstract class TemplateDesign {
	//获取使用时间
	public final void time() {
		//开始的时间(毫秒)
		long beginTime = System.currentTimeMillis();
		//代码具体的实现
		dowork();//延迟调用
		//结束时间
		long endTime = System.currentTimeMillis();
		System.out.println("程序所耗费的时间"+(endTime - beginTime)+"/ms");
	}
	
	//抽象方法让需要测试时间的类来实现
	public abstract void dowork();
	
}

class SelectSort extends TemplateDesign {
	//具体测试
	@Override
	public void dowork() {
		int [] array = new int[10000];
		for(int i = 0; i<array.length;i++) {
			array[i] =(int)(Math.random()*10000);
		}
		int tmp = 0;
		for(int i = 0 ;i<array.length;i++) {
			for(int j = i+1;j<array.length;j++) {
				if(array[i] > array[j]) {
					tmp = array[i];
					array[i] = array[j];
					array[j] = tmp;
				}
			}
		}
	}
}

class BubbleSort extends TemplateDesign {
	//具体测试
	@Override
	public void dowork() {
		int [] array = new int[10000];
		for(int i = 0; i<array.length;i++) {
			array[i] =(int)(Math.random()*10000);
		}
		int tmp = 0;
		for(int i = 0 ;i<array.length;i++) {
			for(int j = 0;j<array.length-i-1;j++) {
				if(array[j] > array[j+1]) {
					tmp = array[j];
					array[j] = array[j+1];
					array[j+1] = tmp;
				}
			}
		}	
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值