【java】模板方法设计模式

模板方法:在定义功能时,功能一部分是确认的,另一部分是不确认的或者后续会变化的。这时可以把不确定的部分暴露出去,定义成抽象类或者接口,由子类来完成。

abstract class GetDuring
{
	public void Gettime()
	{
		long start=System.currentTimeMillis();
		runcode();
		long end=System.currentTimeMillis();
		System.out.println(end-start);	
	}
	
	public abstract void runcode();//把未知的代码运行函数定义为抽象方法,让子类实现
}


class DoGetDuring extends GetDuring //子类继承了父类,有了Gettime和runcode两个方法,但runcode为抽象方法,子类需要复写此方法才能变为非抽象类
{
	public void runcode()
	{
		for	(int i=1;i<=1000;i++)	
		{
			System.out.println(i);
		}
	
	}

}


class  TmDemo
{
	public static void main(String[] args) 
	{
		DoGetDuring c1=new DoGetDuring();
		c1.Gettime();//子类直接调用Gettime方法,Gettime方法会调用子类复写的runcode方法。
	}
}

  

原文地址:https://www.cnblogs.com/paulwinflo/p/8027634.html