java学习 模板方法模式

//抽象类 封装算法框架

public abstract void AbstractTemplate{

   public finial void template{

       first();

       second();

       if(hook()){

           third();

       }

   }

   private void first(){

   }

   protected abstract void second();

   protected bool hook(){

       return true;

   }

   private void third(){

   }

}


//具体子类 实现算法框架中的抽象方法、覆盖钩子函数

public class subclass1 extends   AbstractTemplate{

@Override

   protected void second(){

   }

@Override

   protected bool hook(){

   return false;

   }

}

//使用

AbstractTemplate sub=new subclass1();

sub.template();

你可能感兴趣的:(java学习 模板方法模式)