A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

模板方法设计模式:在定义功能时,功能的一部分确定,一部分不确定,而确定的部分会使用到不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成,这种方式就叫做模板方法设计模式。下面的列子中,父类中的runCode()方法就是不确定的部分,由子类来具体按照其需要实现。

  1. //要求:获取一段程序运行的时间。
  2. abstract class GetTime
  3. {
  4.         /**
  5.         *        此处使用到final关键字,目的是为了不让子类进行修改,即可理解为设计严谨,也可以描述为为了安全强制不能修改。
  6.         *   注意:不能使用private修饰符,否则子类不可见,将没法使用。
  7.         */
  8.         public final void getTime()
  9.         {
  10.                 long start = System.currentTimeMillis();

  11.                 runCode();

  12.                 long end = System.currentTimeMillis();
  13.                 System.out.println("毫秒:"+(end-start));
  14.         }

  15.         //不确定的方法,只提供描述,具体实现由子类完成。
  16.         public abstract void runcode();

  17. }

  18. //具体方法实现
  19. class SubTime extends GetTime
  20. {
  21.         public void runcode()
  22.         {
  23.                 for(int x=0; x<4000; x++)
  24.                 {
  25.                         System.out.print(x);
  26.                 }
  27.         }
  28. }

  29. class  TemplateDemo
  30. {
  31.         public static void main(String[] args)
  32.         {
  33.                 SubTime st = new SubTime();
  34.                 st.getTime();
  35.         }
  36. }
复制代码




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马