什么是模板方法模式
这个模式我认为和单例模式一样,都是比较简单好懂的模式。而且在学习Java多态的时候也会直接用到的。其主要内容就是将各个类公共的方法抽取出来,做成一个抽象类,将公共方法的具体实现延迟到子类中去。这样可以避免代码高度重复且难以维护。举例来说:
假如我们需要一个计算一个方法时间开销的代码。如果写进一个具体方法里,那么在测试另一个方法时,就又需要编写一次。
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("花费时间:"+(end-start));
抽取公共部分做成抽象类
我们可以把上一部分的代码做成一个抽象模板类,所有子类需要基础这个模板类。子类具体要测试的代码写到code方法中,父类中code方法写成抽象类,如下:
public abstract class Template
{
public void spendTime() {
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("花费时间:"+(end-start));
}
public abstract void code() ;
}
接下来只要子类重写code方法再调用spendTime来测试即可。
模板方法模式是一种设计模式,通过抽取类的公共部分到抽象类中,将具体实现延迟到子类,从而避免重复代码并提高代码可维护性。例如,在性能测试场景下,可以创建一个抽象模板类,包含计时方法spendTime,子类只需实现具体的code方法,即可实现不同方法的运行时间测试。这种方式使得测试代码更加简洁和易于扩展。
2571

被折叠的 条评论
为什么被折叠?



