title: Template method design pattern using Java 8
body: <p>I want to refactor template method using java 8 new default method.
  Say I have a flow of process define in abstract class:</p>
  
  <pre><code>public abstract class FlowManager{
      public void startFlow(){
          phase1();
          phase2();
      }
      public abstract void phase1();
      public abstract void phase2();
  }
  </code></pre>
  
  <p>and I have few subclass's that extend the above flow manager and each subclass implements its own <code>phase1</code> and <code>phase2</code> mathod. I wonder if its make any sense to refactor the code to an interface like this:</p>
  
  <pre><code>public interface FlowManager{
      public default startFlow(){
          this.phase1();
          this.phase2();
      }
      public void phase1();
      public void phase2();
  }
  </code></pre>
  
  <p>What do you think?</p>