Java模版方法模式

模版方法模式就是定义一个骨架,具体做什么操作由子类实现,比如我想测试某个方法执行使用的时间,记录时间的代码是固定的,变的只是不同的要测试方法(如添加,删除,修改),所以我们可以定义一个抽象类,提供一个抽象方法,是测试添加还是删除由子类决定。

定义模版类Demo,有一个抽象方法executeMethod(),再提供一个计算时间的方法getTime()

public abstract class Demo {
	
	public abstract void executeMethod();
	
	public long getTime(){
		long startTime = System.currentTimeMillis();
		executeMethod();
		long endTime = System.currentTimeMillis();
		return endTime - startTime;
	}
}


测试添加需要的时间,新建一个类继承Demo重写executeMethod()方法

public class AddClass extends Demo{
	@Override
	public void executeMethod() {
		System.out.println("调用添加方法。。。");
		for(int i =0;i<10000000;i++){
		}
	}
}

如果想测试删除需要的时间,那就再建一个测试删除时间的类,不管测试哪些方法,我们使用的都是一个计算时间的方法( Demo类中的getTime()方法 )

public class DelClass extends Demo {

	@Override
	public void executeMethod() {
		System.out.println("调用删除方法。。。");
		for (int i = 0; i < 10000000; i++) {

		}
	}
}


为防止方法执行过快看不出效果,这里循环了10000000次

 

测试类

public class Test {
	
	
	public static void main(String[] args) {
		Demo add = new AddClass();
		long addUseTime = add.getTime();
		System.out.println("添加使用"+addUseTime + "毫秒");
		
		long delUseTime = add.getTime();
		System.out.println("删除使用"+delUseTime + "毫秒");
	}

	
}

控制台输出

调用添加方法。。。
添加使用4毫秒
调用添加方法。。。
删除使用3毫秒



 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值