Application of abstract class: design pattern of template method

public class TemplateTest {
	public static void main(String[] args) {
		Template t = new SubTemplate();
		t.spendTime();
	}
}

abstract class Template{
	//计算code的执行花费的时间
	public void spendTime(){
		long start = System.currentTimeMillis();
		code();  //易变的部分
		long end = System.currentTimeMillis();
		System.out.println("花费的时间为:" + (end - start));
	}
	
	public abstract void code();
}

class SubTemplate extends Template{

	@Override
	public void code() {
		
		for(int i = 2; i <= 1000; i++){
			boolean flag = true;
			for(int j = 2; j <= Math.sqrt(i); j++){
				if(i % j == 0){
					flag = false;
					break;
				}
			}
			if(flag){
				System.out.println(i);
			}
		}
	}
	
}

 

Guess you like

Origin blog.csdn.net/qq_43629083/article/details/108999984