模板模式

简介:在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

主要解决:一些方法通用,却在每一个子类都重新写了这一方法。

注意:一般模板方法都加上 final 关键词。

下面的例子是关于计算代码执行时间的。如果程序中多处需要计算代码的执行时间,那么可以将这个功能抽象出来。

/**
 * 定义一个模板类,用于计算代码的执行时间
 * @author admin
 *
 */
public abstract class Code {
	public abstract void run();
	
	/**
	 * 模板类
	 */
	final public long getRunTime(){
		Long startTime=System.currentTimeMillis();
		System.err.println("开始时间是"+startTime);
		run();
		Long endTime=System.currentTimeMillis();
		System.err.println("结束时间是"+endTime);
		long time=(endTime-startTime)/1000;
		System.err.println(""+time);
		return time;
	}

}

/**
 *继承模板类,重写抽象方法。
 */
class Calculating extends Code{

	@Override
	public void run() {
		
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

主方法:

public class Main {

	public static void main(String[] args) {
		synchronized (args) {
			Code calculating=new Calculating();
			long time=calculating.getRunTime();
			System.err.println("运行时间是"+time);
		}
	}
}
运行结果:
开始时间是1526350196628
结束时间是1526350201628
5
运行时间是5

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zahngjialiang/article/details/80318810
个人分类: 设计模式
想对作者说点什么? 我来说一句

模板模式方法--设计模式

2010年05月20日 541KB 下载

没有更多推荐了,返回首页

不良信息举报

模板模式

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭