黑马程序员――模板设计模式

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

3.13 模板方法模式

     1、原理:在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定部分,那么这时就将不确定的部分暴露出去,由该类子类去完成。  
     2、例题:

     (1) 需求:获取某一段程序运行的时间。
     (2)原理:获取程序开始和结束的时间并相减即可。      

     (3)、代码示例:

abstract class GetTime{//确定的代码依然放在这个函数中,只有不确定的runCode被覆写
public final void getTime(){//利用final防止复写getTime方法
long start = System.currentTimeMillis();//获取当前时间
runCode();
long end = System.currentTimeMillis();
System.out.println("毫秒"+(end-start));
}
public abstract void runCode();//方法体不确定,所以抽象
}
class SubTime extends GetTime{
@Override
public void runCode() {//由于for循环代码在本例中i的值不确定,所以将其复写
for (int i = 0; i < 1000; i++) {
System.out.println(i);
}
}
}
public class TemplateMethodPattern {
public static void main(String[] args) {
SubTime gt = new SubTime();
gt.getTime();
//System.out.println("毫秒"+gt);
}
}

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ---------------------- 

详细请查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

 

你可能感兴趣的:(模板设计模式)