JAVA:模板方法模式

碰到的问题:

有些时候,我们在写代码时,有些功能是重复使用的,或者说,不同的类中都有实现某一方法,这时,可以考虑“模板方法模式”,把需要的功能写成一个模板,把不同的部分在子类中覆盖掉就行了。

//模板
abstract class GetTime
{
   public final void getTime()//添加一个final,使得该方法不能在子类中被覆盖
   {
       long start = System.currentTimeMillis();
       runCode();//要实现的程序
       long end = System.currentTimeMillis();
       System.out.println();
       System.out.println("毫秒:"+(end-start));
    }
    public abstract void runCode();
}
//子类
class SubTime extends GetTime
{
   public void runCode()            //将要实现的程序覆盖即可
   {
       for(int i=0;i<1000;i++)
       System.out.print(i);
    }
}
public class TestTime
{
   public static void main(String[] agrs)
   {
       SubTime sb = new SubTime();
       sb.getTime();
    }
}

final修饰符:

变量:变为常量,其值不能改变

方法:不能被子类复写

类:不能被继承

 

原文地址:https://www.cnblogs.com/KeenLeung/p/2514060.html