模板方法设计模式:在定义功能时,功能的一部分确定,一部分不确定,而确定的部分会使用到不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成,这种方式就叫做模板方法设计模式。下面的列子中,父类中的runCode()方法就是不确定的部分,由子类来具体按照其需要实现。
- //要求:获取一段程序运行的时间。
- abstract class GetTime
- {
- /**
- * 此处使用到final关键字,目的是为了不让子类进行修改,即可理解为设计严谨,也可以描述为为了安全强制不能修改。
- * 注意:不能使用private修饰符,否则子类不可见,将没法使用。
- */
- public final void getTime()
- {
- long start = System.currentTimeMillis();
- runCode();
- long end = System.currentTimeMillis();
- System.out.println("毫秒:"+(end-start));
- }
- //不确定的方法,只提供描述,具体实现由子类完成。
- public abstract void runcode();
- }
- //具体方法实现
- class SubTime extends GetTime
- {
- public void runcode()
- {
- for(int x=0; x<4000; x++)
- {
- System.out.print(x);
- }
- }
- }
- class TemplateDemo
- {
- public static void main(String[] args)
- {
- SubTime st = new SubTime();
- st.getTime();
- }
- }
复制代码
|
|