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毫秒



 

 

 

你可能感兴趣的:(设计模式,模版方法设计模式,java模版模式)