模板方法设计模式(抽象类的应用)
解决的问题
- 当功能(方法)内部一部分实现是确定的,一部分实现是不确定的(易变的)。这时可以把不确定的部分暴露出来,让子类去实现
- 常用
- 数据库访问的封装
- Junit单元测试
- JavaWeb的Servlet中关于doGet、doPost方法的调用
- Hibernate中的模板程序
- Spring中的JDBCTemlate、HibernateTemplate等
abstract class Template{
public void spendTime(){
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("花费时间:" + (end - start) + "ms");
}
public abstract void code();
}
class MyTest extends Template{
@Override
public void code() {
for(int i = 0; i < 1000000; i++) {
}
}
public static void main(String[] args) {
new MyTest().spendTime();
}
}